From 502db25741c624afaf58ad5f1ee8b99fa6e7fba4 Mon Sep 17 00:00:00 2001 From: Jukka Rissanen Date: Tue, 17 Apr 2012 12:32:22 +0300 Subject: [PATCH] service: Default service notifier is called too many times The default service notifier is invoked even when the default service has not been changed. This causes unnecessary dbus signal traffic. Fixes BMC#25030 --- src/service.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/service.c b/src/service.c index b76b0a9..35e88d0 100644 --- a/src/service.c +++ b/src/service.c @@ -42,8 +42,8 @@ static DBusConnection *connection = NULL; static GSequence *service_list = NULL; static GHashTable *service_hash = NULL; static GSList *counter_list = NULL; - static unsigned int autoconnect_timeout = 0; +static struct connman_service *current_default = NULL; struct connman_stats { connman_bool_t valid; @@ -1256,6 +1256,11 @@ static void default_changed(void) { struct connman_service *service = __connman_service_get_default(); + if (service == current_default) + return; + + current_default = service; + __connman_notifier_default_changed(service); } -- 2.7.4