Revert "Added support to delete ipv6 route using netlink."
[platform/core/connectivity/net-config.git] / src / utils / emulator.c
index f8629d3..29f1ab9 100755 (executable)
@@ -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) {
                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)