const char *ip_addr6 = netconfig_get_default_ipaddress6();
const char *proxy_addr = netconfig_get_default_proxy();
unsigned int freq = netconfig_get_default_frequency();
+ GVariantBuilder *builder;
+ GVariant *params;
if (emulator_is_emulated() == TRUE) {
- if (ip_addr != NULL)
+ builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+
+ if (ip_addr != NULL) {
netconfig_set_vconf_str(VCONFKEY_NETWORK_IP, ip_addr);
- else
+ g_variant_builder_add(builder, "{sv}", "IPv4Address",
+ g_variant_new_string(ip_addr));
+ } else {
netconfig_set_vconf_str(VCONFKEY_NETWORK_IP, "");
+ g_variant_builder_add(builder, "{sv}", "IPv4Address",
+ g_variant_new_string(""));
+ }
- if (ip_addr6 != NULL)
+ if (ip_addr6 != NULL) {
netconfig_set_vconf_str(VCONFKEY_NETWORK_IP6, ip_addr6);
- else
+ g_variant_builder_add(builder, "{sv}", "IPv6Address",
+ g_variant_new_string(ip_addr6));
+ } else {
netconfig_set_vconf_str(VCONFKEY_NETWORK_IP6, "");
+ g_variant_builder_add(builder, "{sv}", "IPv6Address",
+ g_variant_new_string(""));
+ }
+
+ params = g_variant_new("(@a{sv})", g_variant_builder_end(builder));
+
+ netconfig_dbus_emit_signal(NULL, NETCONFIG_NETWORK_PATH,
+ NETCONFIG_NETWORK_INTERFACE, "NetworkConfigChanged",
+ params);
return;
}
if (profile == NULL)
DBG("Reset network state configuration");
else
- DBG("profile[%s] ipv4(%s) ipv6(%s) proxy(%s)", profile, ip_addr, ip_addr6, proxy_addr);
+ DBG("profile[%s] ipv4(%s) ipv6(%s) proxy(%s)", profile, ip_addr,
+ ip_addr6, proxy_addr);
netconfig_vconf_get_int(VCONFKEY_NETWORK_STATUS, &old_network_status);
if (profile == NULL && old_network_status != VCONFKEY_NETWORK_OFF) {
+ builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+
netconfig_set_vconf_int(VCONFKEY_NETWORK_STATUS, VCONFKEY_NETWORK_OFF);
+ g_variant_builder_add(builder, "{sv}", "NetworkStatus",
+ g_variant_new_int32(VCONFKEY_NETWORK_OFF));
netconfig_set_vconf_str(VCONFKEY_NETWORK_IP, "");
+ g_variant_builder_add(builder, "{sv}", "IPv4Address",
+ g_variant_new_string(""));
+
netconfig_set_vconf_str(VCONFKEY_NETWORK_IP6, "");
+ g_variant_builder_add(builder, "{sv}", "IPv6Address",
+ g_variant_new_string(""));
+
netconfig_set_vconf_str(VCONFKEY_NETWORK_PROXY, "");
+ g_variant_builder_add(builder, "{sv}", "ProxyAddress",
+ g_variant_new_string(""));
+
+ params = g_variant_new("(@a{sv})", g_variant_builder_end(builder));
netconfig_set_vconf_int(VCONFKEY_NETWORK_CONFIGURATION_CHANGE_IND, 0);
+ netconfig_dbus_emit_signal(NULL, NETCONFIG_NETWORK_PATH,
+ NETCONFIG_NETWORK_INTERFACE, "NetworkConfigChanged",
+ params);
netconfig_set_vconf_int("memory/private/wifi/frequency", 0);
DBG("Successfully clear IP and PROXY up");
char *old_ip6 = vconf_get_str(VCONFKEY_NETWORK_IP6);
char *old_proxy = vconf_get_str(VCONFKEY_NETWORK_PROXY);
+ builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+
if (netconfig_is_wifi_profile(profile) == TRUE) {
- netconfig_set_vconf_int(VCONFKEY_NETWORK_STATUS, VCONFKEY_NETWORK_WIFI);
+ netconfig_set_vconf_int(VCONFKEY_NETWORK_STATUS,
+ VCONFKEY_NETWORK_WIFI);
+ g_variant_builder_add(builder, "{sv}", "NetworkStatus",
+ g_variant_new_int32(VCONFKEY_NETWORK_WIFI));
netconfig_set_vconf_int("memory/private/wifi/frequency", freq);
netconfig_set_system_event(SYS_EVT_NETWORK_STATUS,
return;
}
- netconfig_set_vconf_int(VCONFKEY_NETWORK_STATUS, VCONFKEY_NETWORK_CELLULAR);
+ netconfig_set_vconf_int(VCONFKEY_NETWORK_STATUS,
+ VCONFKEY_NETWORK_CELLULAR);
+ g_variant_builder_add(builder, "{sv}", "NetworkStatus",
+ g_variant_new_int32(VCONFKEY_NETWORK_CELLULAR));
netconfig_set_system_event(SYS_EVT_NETWORK_STATUS,
EKEY_NETWORK_STATUS, EVAL_NETWORK_CELLULAR);
} else if (netconfig_is_ethernet_profile(profile) == TRUE) {
- netconfig_set_vconf_int(VCONFKEY_NETWORK_STATUS, VCONFKEY_NETWORK_ETHERNET);
+ netconfig_set_vconf_int(VCONFKEY_NETWORK_STATUS,
+ VCONFKEY_NETWORK_ETHERNET);
+ g_variant_builder_add(builder, "{sv}", "NetworkStatus",
+ g_variant_new_int32(VCONFKEY_NETWORK_ETHERNET));
netconfig_set_system_event(SYS_EVT_NETWORK_STATUS,
EKEY_NETWORK_STATUS, EVAL_NETWORK_ETHERNET);
} else if (netconfig_is_bluetooth_profile(profile) == TRUE) {
- netconfig_set_vconf_int(VCONFKEY_NETWORK_STATUS, VCONFKEY_NETWORK_BLUETOOTH);
+ netconfig_set_vconf_int(VCONFKEY_NETWORK_STATUS,
+ VCONFKEY_NETWORK_BLUETOOTH);
+ g_variant_builder_add(builder, "{sv}", "NetworkStatus",
+ g_variant_new_int32(VCONFKEY_NETWORK_BLUETOOTH));
netconfig_set_system_event(SYS_EVT_NETWORK_STATUS,
EKEY_NETWORK_STATUS, EVAL_NETWORK_BT);
} else{
- netconfig_set_vconf_int(VCONFKEY_NETWORK_STATUS, VCONFKEY_NETWORK_OFF);
+ netconfig_set_vconf_int(VCONFKEY_NETWORK_STATUS,
+ VCONFKEY_NETWORK_OFF);
+ g_variant_builder_add(builder, "{sv}", "NetworkStatus",
+ g_variant_new_int32(VCONFKEY_NETWORK_OFF));
netconfig_set_system_event(SYS_EVT_NETWORK_STATUS,
EKEY_NETWORK_STATUS, EVAL_NETWORK_DISCONNECTED);
}
if (g_strcmp0(old_ip, ip_addr) != 0 || old_ip == NULL) {
- if (ip_addr != NULL)
+ if (ip_addr != NULL) {
netconfig_set_vconf_str(VCONFKEY_NETWORK_IP, ip_addr);
- else if (old_ip != NULL && strlen(old_ip) > 0)
+ g_variant_builder_add(builder, "{sv}", "IPv4Address",
+ g_variant_new_string(ip_addr));
+ } else if (old_ip != NULL && strlen(old_ip) > 0) {
netconfig_set_vconf_str(VCONFKEY_NETWORK_IP, "");
+ g_variant_builder_add(builder, "{sv}", "IPv4Address",
+ g_variant_new_string(""));
+ }
}
if (old_ip)
free(old_ip);
if (g_strcmp0(old_ip6, ip_addr6) != 0 || old_ip6 == NULL) {
- if (ip_addr6 != NULL)
+ if (ip_addr6 != NULL) {
netconfig_set_vconf_str(VCONFKEY_NETWORK_IP6, ip_addr6);
- else if (old_ip6 != NULL && strlen(old_ip6) > 0)
+ g_variant_builder_add(builder, "{sv}", "IPv6Address",
+ g_variant_new_string(ip_addr6));
+ } else if (old_ip6 != NULL && strlen(old_ip6) > 0) {
netconfig_set_vconf_str(VCONFKEY_NETWORK_IP6, "");
+ g_variant_builder_add(builder, "{sv}", "IPv6Address",
+ g_variant_new_string(""));
+ }
}
if (old_ip6)
free(old_ip6);
if (g_strcmp0(old_proxy, proxy_addr) != 0) {
- if (proxy_addr == NULL)
+ if (proxy_addr == NULL) {
netconfig_set_vconf_str(VCONFKEY_NETWORK_PROXY, "");
- else
+ g_variant_builder_add(builder, "{sv}", "ProxyAddress",
+ g_variant_new_string(""));
+ } else {
netconfig_set_vconf_str(VCONFKEY_NETWORK_PROXY, proxy_addr);
+ g_variant_builder_add(builder, "{sv}", "ProxyAddress",
+ g_variant_new_string(proxy_addr));
+ }
}
if (old_proxy)
free(old_proxy);
+ params = g_variant_new("(@a{sv})", g_variant_builder_end(builder));
+
netconfig_set_vconf_int(VCONFKEY_NETWORK_CONFIGURATION_CHANGE_IND, 1);
+ netconfig_dbus_emit_signal(NULL, NETCONFIG_NETWORK_PATH,
+ NETCONFIG_NETWORK_INTERFACE, "NetworkConfigChanged",
+ params);
DBG("Successfully update default network configuration");
}
const gchar *name, const gchar *path, const gchar *interface,
const gchar *sig, GVariant *param, gpointer user_data);
-static void __netconfig_extract_ipv4_signal_data(GVariant *dictionary, const gchar *profile)
+static void __netconfig_extract_ipv4_signal_data(GVariant *dictionary,
+ const gchar *profile)
{
gchar *key = NULL;
const gchar *value = NULL;
GVariant *var = NULL;
GVariantIter iter;
+ GVariantBuilder *builder;
+ GVariant *params;
g_variant_iter_init(&iter, dictionary);
while (g_variant_iter_loop(&iter, "{sv}", &key, &var)) {
g_variant_get(var, "&s", &value);
char *old_ip = vconf_get_str(VCONFKEY_NETWORK_IP);
- DBG("Old IPv4.Address [%s] Received new IPv4.Address [%s]", old_ip, value);
+ DBG("Old IPv4.Address [%s] Received new IPv4.Address [%s]", old_ip,
+ value);
if (g_strcmp0(old_ip, value) != 0) {
- if (value != NULL)
+ builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+
+ if (value != NULL) {
vconf_set_str(VCONFKEY_NETWORK_IP, value);
- else if (old_ip != NULL && strlen(old_ip) > 0)
+ g_variant_builder_add(builder, "{sv}", "IPv4Address",
+ g_variant_new_string(value));
+ } else if (old_ip != NULL && strlen(old_ip) > 0) {
vconf_set_str(VCONFKEY_NETWORK_IP, "");
+ g_variant_builder_add(builder, "{sv}", "IPv4Address",
+ g_variant_new_string(""));
+ }
+
+ 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(old_ip);
}
}
}
-static void __netconfig_extract_ipv6_signal_data(GVariant *dictionary, const gchar *profile)
+static void __netconfig_extract_ipv6_signal_data(GVariant *dictionary,
+ const gchar *profile)
{
gchar *key = NULL;
const gchar *value = NULL;
GVariant *var = NULL;
GVariantIter iter;
+ GVariantBuilder *builder;
+ GVariant *params;
g_variant_iter_init(&iter, dictionary);
while (g_variant_iter_loop(&iter, "{sv}", &key, &var)) {
g_variant_get(var, "&s", &value);
char *old_ip6 = vconf_get_str(VCONFKEY_NETWORK_IP6);
- DBG("Old IPv6.Address [%s] Received new IPv6.Address [%s]", old_ip6, value);
+ DBG("Old IPv6.Address [%s] Received new IPv6.Address [%s]", old_ip6,
+ value);
if (g_strcmp0(old_ip6, value) != 0) {
- if (value != NULL)
+ builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+
+ if (value != NULL) {
vconf_set_str(VCONFKEY_NETWORK_IP6, value);
- else if (old_ip6 != NULL && strlen(old_ip6) > 0)
+ g_variant_builder_add(builder, "{sv}", "IPv6Address",
+ g_variant_new_string(value));
+ } else if (old_ip6 != NULL && strlen(old_ip6) > 0) {
vconf_set_str(VCONFKEY_NETWORK_IP6, "");
+ g_variant_builder_add(builder, "{sv}", "IPv6Address",
+ g_variant_new_string(""));
+ }
+
+ 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(old_ip6);
}
g_variant_get(variant, "a{sv}", &iter);
while (g_variant_iter_loop(iter, "{sv}", &property, &var)) {
+ GVariantBuilder *builder;
+ GVariant *sig_params;
if (g_strcmp0(property, "Servers") == 0) {
GVariantIter *iter_sub = NULL;
+ builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+
g_variant_get(var, "as", &iter_sub);
g_variant_iter_loop(iter_sub, "s", &value);
g_variant_iter_free(iter_sub);
DBG("Proxy - [%s]", value);
vconf_set_str(VCONFKEY_NETWORK_PROXY, value);
+ g_variant_builder_add(builder, "{sv}", "ProxyAddress",
+ g_variant_new_string(value));
+
+ sig_params = g_variant_new("(@a{sv})",
+ g_variant_builder_end(builder));
+
+ netconfig_dbus_emit_signal(NULL, NETCONFIG_NETWORK_PATH,
+ NETCONFIG_NETWORK_INTERFACE, "NetworkConfigChanged",
+ sig_params);
+
g_free(property);
g_variant_unref(var);
break;
value = g_variant_get_string(var, NULL);
DBG("Method - [%s]", value);
- if (g_strcmp0(value, "direct") == 0)
+ if (g_strcmp0(value, "direct") == 0) {
+ builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+
vconf_set_str(VCONFKEY_NETWORK_PROXY, "");
+ g_variant_builder_add(builder, "{sv}", "ProxyAddress",
+ g_variant_new_string(""));
+
+ sig_params = g_variant_new("(@a{sv})",
+ g_variant_builder_end(builder));
+
+ netconfig_dbus_emit_signal(NULL, NETCONFIG_NETWORK_PATH,
+ NETCONFIG_NETWORK_INTERFACE,
+ "NetworkConfigChanged", sig_params);
+ }
g_free(property);
g_variant_unref(var);
#include "log.h"
#include "emulator.h"
#include "util.h"
+#include "netdbus.h"
static gboolean netconfig_is_emulated = FALSE;
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) {
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)