Revert "Added support to delete ipv6 route using netlink."
[platform/core/connectivity/net-config.git] / src / utils / emulator.c
old mode 100644 (file)
new mode 100755 (executable)
index 38956c5..29f1ab9
@@ -29,6 +29,7 @@
 #include "log.h"
 #include "emulator.h"
 #include "util.h"
+#include "netdbus.h"
 
 static gboolean netconfig_is_emulated = FALSE;
 
@@ -62,6 +63,8 @@ static void __netconfig_emulator_set_ip(void)
        char ip[30] = { 0, };
        int sockfd = 0;
        struct ifreq ifr;
+       GVariantBuilder *builder;
+       GVariant *params;
 
        sockfd = socket(PF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
        if (sockfd < 0) {
@@ -85,27 +88,62 @@ static void __netconfig_emulator_set_ip(void)
                        inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr), 30);
 
        vconf_set_str(VCONFKEY_NETWORK_IP, ip);
+
+       builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+       g_variant_builder_add(builder, "{sv}", "IPv4Address",
+                                                 g_variant_new_string(ip));
+
+       params = g_variant_new("(@a{sv})", g_variant_builder_end(builder));
+
+       netconfig_dbus_emit_signal(NULL, NETCONFIG_NETWORK_PATH,
+                                  NETCONFIG_NETWORK_INTERFACE, "NetworkConfigChanged", params);
 }
 
 static void __netconfig_emulator_set_proxy(void)
 {
        const char HTTP_PROXY[] = "http_proxy";
        char *proxy = NULL;
+       GVariantBuilder *builder;
+       GVariant *params;
 
        proxy = netconfig_get_env(HTTP_PROXY);
        DBG("Get system proxy: %s", proxy);
 
-       if (proxy != NULL){
+       if (proxy != NULL) {
                vconf_set_str(VCONFKEY_NETWORK_PROXY, proxy);
+
+               builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+               g_variant_builder_add(builder, "{sv}", "ProxyAddress",
+                                                         g_variant_new_string(proxy));
+
+               params = g_variant_new("(@a{sv})", g_variant_builder_end(builder));
+
+               netconfig_dbus_emit_signal(NULL, NETCONFIG_NETWORK_PATH,
+                                                  NETCONFIG_NETWORK_INTERFACE, "NetworkConfigChanged",
+                                                  params);
+
                free(proxy);
        }
 }
 
 static void __netconfig_emulator_set_network_state(void)
 {
+       GVariantBuilder *builder;
+       GVariant *params;
+
        vconf_set_int(VCONFKEY_NETWORK_CONFIGURATION_CHANGE_IND, 1);
        vconf_set_int(VCONFKEY_NETWORK_STATUS, VCONFKEY_NETWORK_ETHERNET);
        vconf_set_int(VCONFKEY_DNET_STATE, VCONFKEY_DNET_NORMAL_CONNECTED);
+
+       builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+
+       g_variant_builder_add(builder, "{sv}", "NetworkStatus",
+                                         g_variant_new_int32(VCONFKEY_NETWORK_ETHERNET));
+
+       params = g_variant_new("(@a{sv})", g_variant_builder_end(builder));
+
+       netconfig_dbus_emit_signal(NULL, NETCONFIG_NETWORK_PATH,
+                                  NETCONFIG_NETWORK_INTERFACE, "NetworkConfigChanged", params);
 }
 
 static void __netconfig_emulator_config_emul_env(void)
@@ -115,17 +153,16 @@ static void __netconfig_emulator_config_emul_env(void)
        __netconfig_emulator_set_network_state();
 }
 
-gboolean netconfig_emulator_is_emulated(void)
+gboolean emulator_is_emulated(void)
 {
        return netconfig_is_emulated;
 }
 
-void netconfig_emulator_test_and_start(void)
+void emulator_test_and_start(void)
 {
        netconfig_is_emulated = __netconfig_emulator_test_emulation_env();
 
-       DBG("Emulation environment tested: %s", netconfig_is_emulated ?
-                       "It's emulated" : "Not emulated");
+       DBG("Emulation environment tested: %s", netconfig_is_emulated ? "It's emulated" : "Not emulated");
 
        if (netconfig_is_emulated == TRUE)
                __netconfig_emulator_config_emul_env();