summaryrefslogtreecommitdiff
path: root/src
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 /src
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
Diffstat (limited to 'src')
-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);
}