vpn-provider: Do not send state property if state is not changed
authorJukka Rissanen <jukka.rissanen@linux.intel.com>
Tue, 19 Feb 2013 08:45:04 +0000 (10:45 +0200)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Tue, 19 Feb 2013 12:29:38 +0000 (14:29 +0200)
vpn/vpn-provider.c

index 3cd7c6d..6a77c1e 100644 (file)
@@ -1191,12 +1191,14 @@ static int provider_indicate_state(struct vpn_provider *provider,
                                enum vpn_provider_state state)
 {
        const char *str;
+       enum vpn_provider_state old_state;
 
        str = state2string(state);
        DBG("provider %p state %s/%d", provider, str, state);
        if (str == NULL)
                return -EINVAL;
 
+       old_state = provider->state;
        provider->state = state;
 
        if (state == VPN_PROVIDER_STATE_READY) {
@@ -1214,9 +1216,11 @@ static int provider_indicate_state(struct vpn_provider *provider,
                                        append_ipv6, provider);
        }
 
-       connman_dbus_property_changed_basic(provider->path,
+       if (old_state != state)
+               connman_dbus_property_changed_basic(provider->path,
                                        VPN_CONNECTION_INTERFACE, "State",
                                        DBUS_TYPE_STRING, &str);
+
        /*
         * We do not stay in failure state as clients like connmand can
         * get confused about our current state.