network: Set service state correctly when ipconfig is cleared
authorJukka Rissanen <jukka.rissanen@nokia.com>
Thu, 10 Feb 2011 15:52:16 +0000 (17:52 +0200)
committerSamuel Ortiz <sameo@linux.intel.com>
Fri, 11 Feb 2011 11:26:31 +0000 (12:26 +0100)
src/network.c

index 7a4d931..240da89 100644 (file)
@@ -1094,12 +1094,14 @@ int __connman_network_clear_ipconfig(struct connman_network *network,
 {
        struct connman_service *service;
        enum connman_ipconfig_method method;
+       enum connman_ipconfig_type type;
 
        service = __connman_service_lookup_from_network(network);
        if (service == NULL)
                return -EINVAL;
 
        method = __connman_ipconfig_get_method(ipconfig);
+       type = __connman_ipconfig_get_config_type(ipconfig);
 
        switch (method) {
        case CONNMAN_IPCONFIG_METHOD_UNKNOWN:
@@ -1117,7 +1119,12 @@ int __connman_network_clear_ipconfig(struct connman_network *network,
                break;
        }
 
-       __connman_service_indicate_state(service,
+       if (type == CONNMAN_IPCONFIG_TYPE_IPV6)
+               __connman_service_indicate_state(service,
+                                       CONNMAN_SERVICE_STATE_CONFIGURATION,
+                                       CONNMAN_IPCONFIG_TYPE_IPV6);
+       else if (type == CONNMAN_IPCONFIG_TYPE_IPV4)
+               __connman_service_indicate_state(service,
                                        CONNMAN_SERVICE_STATE_CONFIGURATION,
                                        CONNMAN_IPCONFIG_TYPE_IPV4);