service: Don't clear ipconfig layers if network disconnection failed
authorSamuel Ortiz <sameo@linux.intel.com>
Thu, 23 Dec 2010 12:05:32 +0000 (13:05 +0100)
committerSamuel Ortiz <sameo@linux.intel.com>
Thu, 23 Dec 2010 12:05:32 +0000 (13:05 +0100)
src/service.c

index f7fa76c..4b2be46 100644 (file)
@@ -3393,6 +3393,9 @@ int __connman_service_disconnect(struct connman_service *service)
        else
                return -EOPNOTSUPP;
 
+       if (err < 0 && err != -EINPROGRESS)
+               return err;
+
        if (service->ipconfig_ipv4)
                __connman_ipconfig_set_proxy_autoconfig(service->ipconfig_ipv4,
                                                        NULL);
@@ -3411,14 +3414,7 @@ int __connman_service_disconnect(struct connman_service *service)
 
        __connman_stats_service_unregister(service);
 
-       if (err < 0) {
-               if (err != -EINPROGRESS)
-                       return err;
-
-               return -EINPROGRESS;
-       }
-
-       return 0;
+       return err;
 }
 
 /**