Fixed bugs related with IPv6
[platform/core/connectivity/net-config.git] / src / signal-handler.c
index 442680a..f06136a 100755 (executable)
@@ -111,7 +111,7 @@ static void __netconfig_extract_ipv4_signal_data(GVariant *dictionary, const gch
 
                        DBG("Old IPv4.Address [%s] Received new IPv4.Address [%s]", old_ip, value);
                        if (g_strcmp0(old_ip, value) != 0) {
-                               if (value == NULL)
+                               if (value == NULL && strlen(old_ip) > 0)
                                        vconf_set_str(VCONFKEY_NETWORK_IP, "");
                                else
                                        vconf_set_str(VCONFKEY_NETWORK_IP, value);
@@ -132,11 +132,11 @@ static void __netconfig_extract_ipv6_signal_data(GVariant *dictionary, const gch
        while (g_variant_iter_loop(&iter, "{sv}", &key, &var)) {
                if (g_strcmp0(key, "Address") == 0)  {
                        value = g_variant_get_string(var, NULL);
-                       char *old_ip6 = vconf_get_str(VCONFKEY_NETWORK_IP);
+                       char *old_ip6 = vconf_get_str(VCONFKEY_NETWORK_IP6);
 
                        DBG("Old IPv6.Address [%s] Received new IPv6.Address [%s]", old_ip6, value);
                        if (g_strcmp0(old_ip6, value) != 0) {
-                               if (value == NULL)
+                               if (value == NULL && strlen(old_ip6) > 0)
                                        vconf_set_str(VCONFKEY_NETWORK_IP6, "");
                                else
                                        vconf_set_str(VCONFKEY_NETWORK_IP6, value);