From: Jaehyun Kim Date: Mon, 13 Dec 2021 02:52:27 +0000 (+0900) Subject: Update the host's vconf value to the container X-Git-Tag: accepted/tizen/unified/20211216.155842^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F86%2F267886%2F2;p=platform%2Fcore%2Fconnectivity%2Fnet-config.git Update the host's vconf value to the container Change-Id: Ice9856d3144fc8089faeb55fbd022865dce3674c Signed-off-by: Jaehyun Kim --- diff --git a/include/netdbus.h b/include/netdbus.h index 502f865..ed2175b 100755 --- a/include/netdbus.h +++ b/include/netdbus.h @@ -69,6 +69,9 @@ extern "C" { #define NETCONFIG_ETHERNET_PATH "/net/netconfig/ethernet" #define NETCONFIG_ETHERNET_INTERFACE "net.netconfig.ethernet" +#define CONTAINER_FILE "/run/systemd/container" +#define DBUS_HOST_SYSTEM_BUS_ADDRESS "unix:path=/run/host/dbus/system_bus_socket" + #define DBUS_PATH_MAX_BUFLEN 512 #define DBUS_STATE_MAX_BUFLEN 64 diff --git a/include/network-state.h b/include/network-state.h index b7bff2c..3b6aa12 100755 --- a/include/network-state.h +++ b/include/network-state.h @@ -25,6 +25,8 @@ extern "C" { #endif void netconfig_network_notify_ethernet_cable_state(const char *key); +int netconfig_dbus_get_vconf_value(const char *key, + const char *type, int *ret, int *int_value, char **str_value); const char *netconfig_get_default_profile(void); const char *netconfig_get_default_ifname(void); @@ -44,6 +46,7 @@ void netconfig_set_default_is_internet(gboolean state); void netconfig_update_default(void); void netconfig_update_default_profile(void); +void netconfig_update_initial_container_vconf(void); const char *netconfig_get_ifname(const char *profile); void state_object_create_and_init(void); diff --git a/include/signal-handler.h b/include/signal-handler.h index 37a6bff..9f55f61 100755 --- a/include/signal-handler.h +++ b/include/signal-handler.h @@ -24,6 +24,8 @@ extern "C" { #endif +void register_gdbus_signal_container(void); +void deregister_gdbus_signal_container(void); void register_gdbus_signal(void); void deregister_gdbus_signal(void); diff --git a/include/util.h b/include/util.h index 09e4359..ae6a260 100755 --- a/include/util.h +++ b/include/util.h @@ -36,6 +36,7 @@ extern "C" { #define MAC_ADDRESS_MAX_LEN 18 #define MAX_SIZE_ERROR_BUFFER 256 +#define VCONF_ETH_MAC_ADDRESS "db/dnet/mac_address" #define ETHERNET_FEATURE "http://tizen.org/feature/network.ethernet" #define TETHERING_FEATURE "http://tizen.org/feature/network.tethering" @@ -93,10 +94,15 @@ int netconfig_send_message_to_net_popup(const char *title, int netconfig_send_restriction_to_net_popup(const char *title, const char *type, const char *restriction); void netconfig_set_system_event(int sys_evt, int evt_key, int evt_val); -void netconfig_set_vconf_int(const char * key, int value, gboolean log); -void netconfig_set_vconf_str(const char * key, const char * value, gboolean log); -int netconfig_vconf_get_int(const char * key, int *value); -int netconfig_vconf_get_bool(const char * key, int *value); +void netconfig_set_vconf_int(const char *key, int value, gboolean log); +void netconfig_set_vconf_str(const char *key, const char *value, gboolean log); +int netconfig_vconf_get_int(const char *key, int *value); +int netconfig_vconf_get_bool(const char *key, int *value); + +char *netconfig_vconf_get_str_dbus(const char *key); +int netconfig_vconf_get_int_dbus(const char *key, int *value); +int netconfig_vconf_get_bool_dbus(const char *key, int *value); + char* netconfig_get_env(const char *key); void netconfig_set_mac_address_to_vconf(const char *def_mac); void netconfig_set_mac_address_from_file(void); diff --git a/include/wifi-power.h b/include/wifi-power.h index 77a4ae5..033d8b3 100755 --- a/include/wifi-power.h +++ b/include/wifi-power.h @@ -26,6 +26,10 @@ extern "C" { #include "wifi.h" +#define VCONF_WIFI_OFF_STATE_BY_AIRPLANE "file/private/wifi/wifi_off_by_airplane" +#define VCONF_WIFI_OFF_STATE_BY_RESTRICTED "file/private/wifi/wifi_off_by_restricted" +#define VCONF_WIFI_OFF_STATE_BY_EMERGENCY "file/private/wifi/wifi_off_by_emergency" + void wifi_power_initialize(void); void wifi_power_deinitialize(void); diff --git a/src/dbus/netdbus.c b/src/dbus/netdbus.c index 4e06230..3136ddb 100755 --- a/src/dbus/netdbus.c +++ b/src/dbus/netdbus.c @@ -123,7 +123,14 @@ int _create_gdbus_call(GDBusConnection *conn) return -1; } - gconn_data.connection = conn; + if (access(CONTAINER_FILE, F_OK) == 0) { + gconn_data.connection = g_dbus_connection_new_for_address_sync( + DBUS_HOST_SYSTEM_BUS_ADDRESS, + G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT | G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION, + NULL, NULL, NULL); + } else + gconn_data.connection = conn; + if (gconn_data.connection == NULL) { ERR("Failed to connect to the D-BUS daemon"); return -1; diff --git a/src/main.c b/src/main.c index 19eee08..f1832c7 100755 --- a/src/main.c +++ b/src/main.c @@ -48,7 +48,6 @@ static GMainLoop *main_loop = NULL; /*Poll the ethernet Cable Plug-in /Plug-out status at every 1000 ms*/ #define ETH_POLLING_TIME 1000 -#define CONTAINER_FILE "/run/systemd/container" /* Callback to Poll the Ethernet Status*/ gboolean __net_ethernet_cable_status_polling_callback(gpointer data) @@ -57,6 +56,12 @@ gboolean __net_ethernet_cable_status_polling_callback(gpointer data) return TRUE; } +void _got_name_cb_container(void) +{ + register_gdbus_signal_container(); + netconfig_update_initial_container_vconf(); +} + void _got_name_cb(void) { wifi_object_create_and_init(); @@ -121,14 +126,18 @@ int main(int argc, char *argv[]) } if (access(CONTAINER_FILE, F_OK) == 0) { - ret = setup_gdbus(NULL); + ret = setup_gdbus(_got_name_cb_container); if (ret != 0) { ERR("_netconfig_setup_gdbus is failed\n"); return 0; } + g_main_loop_run(main_loop); + cleanup_gdbus(); log_cleanup(); + deregister_gdbus_signal_container(); + return 0; } diff --git a/src/network-state.c b/src/network-state.c index 586ef7f..79a663e 100755 --- a/src/network-state.c +++ b/src/network-state.c @@ -115,6 +115,40 @@ struct netconfig_default_connection { gboolean is_internet; }; +struct netconfig_vconf_key_t { + const char *key; + enum vconf_t type; +}; + +static struct netconfig_vconf_key_t network_vconf_keys[] = { + {VCONFKEY_NETWORK_IP, VCONF_TYPE_STRING}, + {VCONFKEY_NETWORK_PROXY, VCONF_TYPE_STRING}, + {VCONFKEY_NETWORK_IP6, VCONF_TYPE_STRING}, + {VCONF_ETH_MAC_ADDRESS, VCONF_TYPE_STRING}, + {VCONFKEY_WIFI_CONNECTED_AP_NAME, VCONF_TYPE_STRING}, + {VCONFKEY_WIFI_BSSID_ADDRESS, VCONF_TYPE_STRING}, + {VCONFKEY_NETWORK_CONFIGURATION_CHANGE_IND, VCONF_TYPE_INT}, + {VCONFKEY_NETWORK_STATUS, VCONF_TYPE_INT}, + {VCONFKEY_DNET_STATE, VCONF_TYPE_INT}, + {VCONF_WIFI_OFF_STATE_BY_EMERGENCY, VCONF_TYPE_INT}, + {VCONF_WIFI_OFF_STATE_BY_AIRPLANE, VCONF_TYPE_INT}, + {VCONFKEY_NETWORK_WIFI_OFF_BY_AIRPLANE, VCONF_TYPE_INT}, + {VCONFKEY_WIFI_TRANSFER_STATE, VCONF_TYPE_INT}, + {VCONF_WIFI_OFF_STATE_BY_RESTRICTED, VCONF_TYPE_INT}, + {VCONFKEY_WIFI_STRENGTH, VCONF_TYPE_INT}, + {VCONFKEY_WIFI_STATE, VCONF_TYPE_INT}, + {VCONFKEY_NETWORK_WIFI_STATE, VCONF_TYPE_INT}, + {VCONFKEY_NETWORK_CELLULAR_PKT_LAST_RCV, VCONF_TYPE_INT}, + {VCONFKEY_NETWORK_CELLULAR_PKT_LAST_SNT, VCONF_TYPE_INT}, + {VCONFKEY_NETWORK_CELLULAR_PKT_TOTAL_RCV, VCONF_TYPE_INT}, + {VCONFKEY_NETWORK_CELLULAR_PKT_TOTAL_SNT, VCONF_TYPE_INT}, + {VCONFKEY_NETWORK_WIFI_PKT_TOTAL_RCV, VCONF_TYPE_INT}, + {VCONFKEY_NETWORK_WIFI_PKT_LAST_RCV, VCONF_TYPE_INT}, + {VCONFKEY_NETWORK_WIFI_PKT_TOTAL_SNT, VCONF_TYPE_INT}, + {VCONFKEY_NETWORK_WIFI_PKT_LAST_SNT, VCONF_TYPE_INT}, + {NULL, } +}; + static struct netconfig_default_connection netconfig_default_connection_info = { NULL, }; @@ -1118,6 +1152,33 @@ static char *__netconfig_get_mac_address(const char *profile) return g_strdup(mac_str); } +int netconfig_dbus_get_vconf_value(const char *key, + const char *type, int *ret, int *int_value, char **str_value) +{ + GVariant *result = NULL; + GVariant *params = NULL; + + params = g_variant_new("(ss)", key, type); + + result = netconfig_invoke_dbus_method(NETCONFIG_SERVICE, + NETCONFIG_NETWORK_PATH, NETCONFIG_NETWORK_INTERFACE, + "RequestVconfValue", params); + + if (result == NULL) { + ERR("netconfig_invoke_dbus_method failed"); + return FALSE; + } + + g_variant_get(result, "(iis)", ret, int_value, str_value); + + INFO("Vconf key: %s, type: %s, ret: %d, int_value: %d, str_value: %s", + key, type, *ret, *int_value, *str_value); + + g_variant_unref(result); + + return TRUE; +} + const char *netconfig_get_default_profile(void) { return netconfig_default_connection_info.profile; @@ -1215,6 +1276,32 @@ void netconfig_update_default(void) } } +void netconfig_update_initial_container_vconf(void) +{ + char *str_value = NULL; + int int_value = 0; + int idx = 0; + + while (network_vconf_keys[idx].key) { + switch (network_vconf_keys[idx].type) { + case VCONF_TYPE_STRING: + str_value = netconfig_vconf_get_str_dbus(network_vconf_keys[idx].key); + if (str_value) + vconf_set_str(network_vconf_keys[idx].key, str_value); + g_free(str_value); + break; + case VCONF_TYPE_INT: + if (netconfig_vconf_get_int_dbus(network_vconf_keys[idx].key, &int_value) == VCONF_OK) + vconf_set_int(network_vconf_keys[idx].key, int_value); + break; + default: + break; + } + + idx++; + } +} + const char *netconfig_get_ifname(const char *profile) { const char *ifname = NULL; diff --git a/src/signal-handler.c b/src/signal-handler.c index 1e45908..15c6e65 100755 --- a/src/signal-handler.c +++ b/src/signal-handler.c @@ -83,6 +83,8 @@ #define CONNMAN_SIGNAL_DEVICE_CHANGED "DeviceChanged" #define CONNMAN_SIGNAL_DEVICE_DETECTED "DeviceDetected" #define SIGNAL_NAME_OWNER_CHANGED "NameOwnerChanged" +#define NETCONFIG_SIGNAL_VCONF_CHANGED "VconfChanged" + #define MAX_SIG_LEN 64 #define TOTAL_CONN_SIGNALS 7 @@ -156,6 +158,7 @@ static int supp_subscription_ids[SIG_MAX] = {0}; #if defined TIZEN_DEBUG_ENABLE static int dumpservice_subscription_id = 0; #endif +static int netconfig_subscription_id = 0; typedef void (*supplicant_signal_cb)(GDBusConnection *conn, const gchar *name, const gchar *path, const gchar *interface, @@ -187,11 +190,11 @@ static void __netconfig_extract_ipv4_signal_data(GVariant *dictionary, if (value != NULL) { netconfig_set_default_ipaddress(value); - vconf_set_str(VCONFKEY_NETWORK_IP, value); + netconfig_set_vconf_str(VCONFKEY_NETWORK_IP, value, TRUE); 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, ""); + netconfig_set_vconf_str(VCONFKEY_NETWORK_IP, "",TRUE); g_variant_builder_add(builder, "{sv}", "IPv4Address", g_variant_new_string("")); } @@ -233,11 +236,11 @@ static void __netconfig_extract_ipv6_signal_data(GVariant *dictionary, if (value != NULL) { netconfig_set_default_ipaddress6(value); - vconf_set_str(VCONFKEY_NETWORK_IP6, value); + netconfig_set_vconf_str(VCONFKEY_NETWORK_IP6, value, TRUE); 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, ""); + netconfig_set_vconf_str(VCONFKEY_NETWORK_IP6, "", TRUE); g_variant_builder_add(builder, "{sv}", "IPv6Address", g_variant_new_string("")); } @@ -570,7 +573,7 @@ static void _service_signal_cb(GDBusConnection *conn, builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}")); netconfig_set_default_proxy(value); - vconf_set_str(VCONFKEY_NETWORK_PROXY, value); + netconfig_set_vconf_str(VCONFKEY_NETWORK_PROXY, value, TRUE); g_variant_builder_add(builder, "{sv}", "ProxyAddress", g_variant_new_string(value)); @@ -596,7 +599,7 @@ static void _service_signal_cb(GDBusConnection *conn, builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}")); netconfig_set_default_proxy(""); - vconf_set_str(VCONFKEY_NETWORK_PROXY, ""); + netconfig_set_vconf_str(VCONFKEY_NETWORK_PROXY, "", TRUE); g_variant_builder_add(builder, "{sv}", "ProxyAddress", g_variant_new_string("")); @@ -691,6 +694,39 @@ static void _dbus_name_changed_cb(GDBusConnection *conn, return; } +static void _dbus_vconf_changed_cb(GDBusConnection *conn, + const gchar *Name, const gchar *path, const gchar *interface, + const gchar *sig, GVariant *param, gpointer user_data) +{ + gchar *key = NULL; + gchar *type = NULL; + gchar *str_val = NULL; + int int_val = 0; + + if (param == NULL) + return; + + g_variant_get(param, "(sssi)", &key, &type, &str_val, &int_val); + + if (!key || key[0] == '\0') + goto done; + + DBG("VconfChanged key: %s, type: %s, str_val: %s, int_val: %d", + key, type, str_val, int_val); + + if (g_strcmp0(type, "string") == 0 && str_val) + vconf_set_str(key, str_val); + else if (g_strcmp0(type, "int") == 0) + vconf_set_int(key, int_val); + else if (g_strcmp0(type, "bool") == 0) + vconf_set_bool(key, int_val); + +done: + g_free(key); + g_free(type); + g_free(str_val); +} + static void _scan_changed_cb(GDBusConnection *conn, const gchar *name, const gchar *path, const gchar *interface, const gchar *sig, GVariant *param, gpointer user_data) @@ -1455,6 +1491,31 @@ static supplicant_signal_cb supplicant_cbs[SIG_MAX] = { _supplicant_dpp_conf_obj, }; +void register_gdbus_signal_container(void) +{ + GDBusConnection *connection = NULL; + connection = netdbus_get_connection(); + + if (connection == NULL) { + ERR("Failed to get GDbus Connection"); + return; + } + + netconfig_subscription_id = g_dbus_connection_signal_subscribe( + connection, + NETCONFIG_SERVICE, + NETCONFIG_NETWORK_INTERFACE, + NETCONFIG_SIGNAL_VCONF_CHANGED, + NETCONFIG_NETWORK_PATH, + NULL, + G_DBUS_SIGNAL_FLAGS_NONE, + _dbus_vconf_changed_cb, + NULL, + NULL); + + INFO("Successfully register host net-config DBus signal filter"); +} + void register_gdbus_signal(void) { GDBusConnection *connection = NULL; @@ -1601,6 +1662,21 @@ void register_gdbus_signal(void) netconfig_update_default(); } +void deregister_gdbus_signal_container(void) +{ + GDBusConnection *connection = NULL; + + connection = netdbus_get_connection(); + if (!connection) { + ERR("Already de-registered. Nothing to be done"); + return; + } + + if (netconfig_subscription_id) + g_dbus_connection_signal_unsubscribe(connection, + netconfig_subscription_id); +} + void deregister_gdbus_signal(void) { GDBusConnection *connection = NULL; diff --git a/src/utils/emulator.c b/src/utils/emulator.c index 49a2b90..2d3f659 100755 --- a/src/utils/emulator.c +++ b/src/utils/emulator.c @@ -87,7 +87,7 @@ static void __netconfig_emulator_set_ip(void) g_strlcpy(ip, inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr), 30); - vconf_set_str(VCONFKEY_NETWORK_IP, ip); + netconfig_set_vconf_str(VCONFKEY_NETWORK_IP, ip, TRUE); builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}")); g_variant_builder_add(builder, "{sv}", "IPv4Address", @@ -111,7 +111,7 @@ static void __netconfig_emulator_set_proxy(void) DBG("Get system proxy: %s", proxy); if (proxy != NULL) { - vconf_set_str(VCONFKEY_NETWORK_PROXY, proxy); + netconfig_set_vconf_str(VCONFKEY_NETWORK_PROXY, proxy, TRUE); builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}")); g_variant_builder_add(builder, "{sv}", "ProxyAddress", @@ -133,9 +133,9 @@ 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); + netconfig_set_vconf_int(VCONFKEY_NETWORK_CONFIGURATION_CHANGE_IND, 1, TRUE); + netconfig_set_vconf_int(VCONFKEY_NETWORK_STATUS, VCONFKEY_NETWORK_ETHERNET, TRUE); + netconfig_set_vconf_int(VCONFKEY_DNET_STATE, VCONFKEY_DNET_NORMAL_CONNECTED, TRUE); builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}")); diff --git a/src/utils/util.c b/src/utils/util.c index 1a18a4a..4eba47a 100755 --- a/src/utils/util.c +++ b/src/utils/util.c @@ -44,6 +44,7 @@ #include "util.h" #include "neterror.h" #include "wifi-state.h" +#include "network-state.h" #include "netdbus.h" #define DBUS_SERVICE_DBUS "org.freedesktop.DBus" @@ -1236,9 +1237,10 @@ void netconfig_notify_online_state(char *ifname, gboolean online_state) online_monitor_plugin->notify_online_state(ifname, online_state); } -void netconfig_set_vconf_int(const char * key, int value, gboolean log) +void netconfig_set_vconf_int(const char *key, int value, gboolean log) { int ret = 0; + GVariant *params = NULL; if (log) DBG("[%s: %d]", key, value); @@ -1246,11 +1248,18 @@ void netconfig_set_vconf_int(const char * key, int value, gboolean log) ret = vconf_set_int(key, value); if (ret != VCONF_OK) ERR("Failed to set"); + + params = g_variant_new("(sssi)", key, "int", "", value); + if (netconfig_dbus_emit_signal(NULL, NETCONFIG_NETWORK_PATH, + NETCONFIG_NETWORK_INTERFACE, "VconfChanged", + params) == FALSE) + ERR("Failed to emit VconfChanged signal"); } -void netconfig_set_vconf_str(const char * key, const char * value, gboolean log) +void netconfig_set_vconf_str(const char *key, const char *value, gboolean log) { int ret = 0; + GVariant *params = NULL; if (log) DBG("[%s: %s]", key, value); @@ -1258,9 +1267,15 @@ void netconfig_set_vconf_str(const char * key, const char * value, gboolean log) ret = vconf_set_str(key, value); if (ret != VCONF_OK) ERR("Failed to set"); + + params = g_variant_new("(sssi)", key, "string", value, 0); + if (netconfig_dbus_emit_signal(NULL, NETCONFIG_NETWORK_PATH, + NETCONFIG_NETWORK_INTERFACE, "VconfChanged", + params) == FALSE) + ERR("Failed to emit VconfChanged signal"); } -int netconfig_vconf_get_int(const char * key, int *value) +int netconfig_vconf_get_int(const char *key, int *value) { int ret = 0; @@ -1273,7 +1288,7 @@ int netconfig_vconf_get_int(const char * key, int *value) return 0; } -int netconfig_vconf_get_bool(const char * key, int *value) +int netconfig_vconf_get_bool(const char *key, int *value) { int ret = 0; @@ -1286,6 +1301,52 @@ int netconfig_vconf_get_bool(const char * key, int *value) return 0; } +char *netconfig_vconf_get_str_dbus(const char *key) +{ + int ret = 0; + int int_value = 0; + char *str_value = NULL; + + if (!netconfig_dbus_get_vconf_value(key, "string", &ret, &int_value, &str_value)) + return NULL; + + return str_value; +} + +int netconfig_vconf_get_int_dbus(const char *key, int *value) +{ + int ret = 0; + int int_value = 0; + char *str_value = NULL; + + if (!netconfig_dbus_get_vconf_value(key, "int", &ret, &int_value, &str_value)) + return VCONF_ERROR; + + *value = int_value; + + if (str_value) + g_free(str_value); + + return ret; +} + +int netconfig_vconf_get_bool_dbus(const char *key, int *value) +{ + int ret = 0; + int int_value = 0; + char *str_value = NULL; + + if (!netconfig_dbus_get_vconf_value(key, "bool", &ret, &int_value, &str_value)) + return VCONF_ERROR; + + *value = int_value; + + if (str_value) + g_free(str_value); + + return ret; +} + char* netconfig_get_env(const char *key) { FILE *fp; diff --git a/src/wifi-power.c b/src/wifi-power.c index fe8f48c..0cdfd8e 100755 --- a/src/wifi-power.c +++ b/src/wifi-power.c @@ -46,16 +46,12 @@ #define WLAN_SUPPLICANT_SCRIPT "/usr/bin/wpa_supp.sh" #define P2P_SUPPLICANT_SCRIPT "/usr/bin/p2p_supp.sh" -#define VCONF_WIFI_OFF_STATE_BY_AIRPLANE "file/private/wifi/wifi_off_by_airplane" -#define VCONF_WIFI_OFF_STATE_BY_RESTRICTED "file/private/wifi/wifi_off_by_restricted" -#define VCONF_WIFI_OFF_STATE_BY_EMERGENCY "file/private/wifi/wifi_off_by_emergency" #if !defined TIZEN_WEARABLE #define VCONFKEY_SETAPPL_NETWORK_PERMIT_WITH_LCD_OFF_LIMIT "db/setting/network_with_lcd_off_limit" #endif #define WLAN_MAC_ADDR_MAX 20 #define ETH_MAC_ADDR_SIZE 6 -#define VCONF_ETH_MAC_ADDRESS "db/dnet/mac_address" #define NET_EXEC_PATH "/sbin/ifconfig" #define OS_RANDOM_FILE "/dev/urandom"