Upstream: service: Enable ipconfig only for the changed IP type
[platform/upstream/connman.git] / src / service.c
index f77f033..1eae380 100755 (executable)
@@ -4040,9 +4040,11 @@ static DBusMessage *set_property(DBusConnection *conn,
                if (err < 0) {
                        if (is_connected_state(service, state) ||
                                        is_connecting_state(service, state)) {
-                               __connman_network_enable_ipconfig(service->network,
+                               if (type == CONNMAN_IPCONFIG_TYPE_IPV4)
+                                       __connman_network_enable_ipconfig(service->network,
                                                        service->ipconfig_ipv4);
-                               __connman_network_enable_ipconfig(service->network,
+                               else
+                                       __connman_network_enable_ipconfig(service->network,
                                                        service->ipconfig_ipv6);
                        }
 
@@ -4055,10 +4057,12 @@ static DBusMessage *set_property(DBusConnection *conn,
                        ipv6_configuration_changed(service);
 
                if (is_connecting(service) || is_connected(service)) {
-                       __connman_network_enable_ipconfig(service->network,
-                                                       service->ipconfig_ipv4);
-                       __connman_network_enable_ipconfig(service->network,
-                                                       service->ipconfig_ipv6);
+                       if (type == CONNMAN_IPCONFIG_TYPE_IPV4)
+                               __connman_network_enable_ipconfig(service->network,
+                                                               service->ipconfig_ipv4);
+                       else
+                               __connman_network_enable_ipconfig(service->network,
+                                                               service->ipconfig_ipv6);
                }
 
                service_save(service);