merge with master
authorJinkun Jang <jinkun.jang@samsung.com>
Fri, 15 Mar 2013 16:13:33 +0000 (01:13 +0900)
committerJinkun Jang <jinkun.jang@samsung.com>
Fri, 15 Mar 2013 16:13:33 +0000 (01:13 +0900)
include/wifi-background-scan.h
packaging/net-config.spec
src/signal-handler.c
src/wifi-background-scan.c
src/wifi.c

index c1d39203dd9ec478fc018f17c1e27a50bd2a326e..999400bd6a36074e64486ecee2f82cbdfb95d4eb 100644 (file)
@@ -34,6 +34,8 @@ gboolean netconfig_wifi_get_scanning(void);
 void netconfig_wifi_set_scanning(gboolean scanning);
 
 gboolean netconfig_iface_wifi_set_bgscan(NetconfigWifi *wifi, guint scan_mode, GError **error);
+void netconfig_wifi_init_bgscan();
+void netconfig_wifi_deinit_bgscan();
 
 #ifdef __cplusplus
 }
index d34aea6952d107ba04318f9bcb67c520a01e44f8..99819e937921dd31300469dd9dcc7f12d6757d7a 100644 (file)
@@ -1,6 +1,6 @@
 Name:       net-config
 Summary:    TIZEN Network Configuration Module
-Version:    0.1.90_16
+Version:    0.1.90_17
 Release:    1
 Group:      System/Network
 License:    Apache License Version 2.0
@@ -64,6 +64,7 @@ cp LICENSE.APLv2 %{buildroot}%{_datadir}/license/net-config
 vconftool set -t int memory/dnet/state 0 -i
 vconftool set -t int memory/wifi/state 0 -i
 vconftool set -t int memory/wifi/strength 0 -i
+vconftool set -t int memory/wifi/bgscan_mode 0 -i
 
 vconftool set -t int memory/dnet/cellular 0 -i
 vconftool set -t int memory/dnet/wifi 0 -i
index 1aa7f103417af5f1aef79da462c91513b48f6b3d..3c0d781f48d291f21a49bbaf2b0cef3d679eacec 100644 (file)
@@ -391,4 +391,6 @@ void netconfig_deregister_signal(void)
 
        dbus_connection_unref(signal_connection);
        signal_connection = NULL;
+
+       netconfig_wifi_deinit_bgscan();
 }
index 224c1841621606c282eb40cff08de3752c0462a7..46e98e264d34c1c427b8c8d0eae2c3a368afa3df 100644 (file)
@@ -172,6 +172,36 @@ static gboolean __netconfig_wifi_bgscan_request_scan(gpointer data)
        return FALSE;
 }
 
+static void __netconfig_wifi_bgscan_mode_cb(keynode_t* node, void* user_data)
+{
+       int value;
+       int wifi_state;
+
+       if (vconf_get_int(VCONFKEY_WIFI_BGSCAN_MODE, &value) < 0) {
+               ERR("VCONFKEY_WIFI_BGSCAN_MODE get failed");
+               return;
+       }
+
+       DBG("Background scanning mode is changed : %d", value);
+
+       __netconfig_wifi_bgscan_set_mode((guint)value);
+
+       if (vconf_get_int(VCONFKEY_WIFI_STATE, &wifi_state) < 0) {
+               ERR("VCONFKEY_WIFI_STATE get failed");
+               return;
+       }
+
+       if (wifi_state == VCONFKEY_WIFI_OFF)
+               return;
+
+       struct bgscan_timer_data *timer_data = __netconfig_wifi_bgscan_get_bgscan_data();
+
+       if (timer_data->timer_id != 0)
+               netconfig_wifi_bgscan_stop();
+
+       netconfig_wifi_bgscan_start();
+}
+
 void netconfig_wifi_bgscan_start(void)
 {
        struct bgscan_timer_data *timer_data =
@@ -232,3 +262,25 @@ gboolean netconfig_iface_wifi_set_bgscan(NetconfigWifi *wifi, guint scan_mode, G
 
        return TRUE;
 }
+
+void netconfig_wifi_init_bgscan()
+{
+       guint scan_mode = __netconfig_wifi_bgscan_get_mode();
+
+       if (scan_mode == WIFI_BGSCAN_MODE_PERIODIC)
+               vconf_set_int(VCONFKEY_WIFI_BGSCAN_MODE, VCONFKEY_WIFI_BGSCAN_MODE_PERIODIC);
+       else
+               vconf_set_int(VCONFKEY_WIFI_BGSCAN_MODE, VCONFKEY_WIFI_BGSCAN_MODE_EXPONENTIAL);
+
+       if (vconf_notify_key_changed(VCONFKEY_WIFI_BGSCAN_MODE,
+                       __netconfig_wifi_bgscan_mode_cb, NULL))
+               DBG("Failed to set notify callback");
+}
+
+void netconfig_wifi_deinit_bgscan()
+{
+       if (vconf_ignore_key_changed(VCONFKEY_WIFI_BGSCAN_MODE,
+                       __netconfig_wifi_bgscan_mode_cb))
+               DBG("Failed to unset notify callback");
+}
+
index baf3e126387b5481466b7b60bbdf0aec8cbd6d60..e5e4ddb3b94b5c0eb6864bbe22e24f1b915995d6 100644 (file)
@@ -167,6 +167,7 @@ gpointer netconfig_wifi_create_and_init(DBusGConnection *conn)
        INFO("wifi(%p) register DBus path(%s)", object, NETCONFIG_WIFI_PATH);
 
        netconfig_wifi_power_configuration();
+       netconfig_wifi_init_bgscan();
 
        return object;
 }