summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJukka Rissanen <jukka.rissanen@linux.intel.com>2012-04-17 12:32:22 +0300
committerPatrik Flykt <patrik.flykt@linux.intel.com>2012-04-17 13:38:02 +0300
commit502db25741c624afaf58ad5f1ee8b99fa6e7fba4 (patch)
tree6d67b7b63bc3f95d693c87d7afd897abd8d5591f
parent399324696f74d333fc93819c3802c33464dfe91a (diff)
downloadconnman-502db25741c624afaf58ad5f1ee8b99fa6e7fba4.tar.gz
connman-502db25741c624afaf58ad5f1ee8b99fa6e7fba4.tar.bz2
connman-502db25741c624afaf58ad5f1ee8b99fa6e7fba4.zip
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
-rw-r--r--src/service.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/service.c b/src/service.c
index b76b0a9d..35e88d02 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);
}