Add ApSelectionMethod config option 08/301608/1
authorJaehyun Kim <jeik01.kim@samsung.com>
Mon, 20 Nov 2023 14:35:58 +0000 (23:35 +0900)
committerJaehyun Kim <jeik01.kim@samsung.com>
Mon, 20 Nov 2023 14:35:58 +0000 (23:35 +0900)
Global config option, which allow to select the AP selection method
to use when connecting to an AP.
Existing AP selection methods have also been modified to use this option.

Change-Id: I90b4fc162de6ce435aa691951ad1404c92821bf5
Signed-off-by: Jaehyun Kim <jeik01.kim@samsung.com>
20 files changed:
Makefile.am
client/commands.c
configure.ac
gsupplicant/gsupplicant.h
gsupplicant/supplicant.c
include/network.h
include/setting.h
packaging/connman.spec
plugins/wifi.c
src/connman.h
src/device.c
src/main.c
src/main.conf
src/main_robot.conf
src/main_tv.conf
src/manager.c
src/network.c
src/service.c
src/storage.c
src/wispr.c

index e8662e4..16000df 100644 (file)
@@ -373,9 +373,7 @@ if TIZEN_EXT_WIFI_MESH
 client_connmanctl_SOURCES += client/mesh.c client/mesh.h
 endif
 
-if TIZEN_EXT_INS
 client_connmanctl_SOURCES += client/ins.c client/ins.h
-endif
 
 client_connmanctl_LDADD = gdbus/libgdbus-internal.la @DBUS_LIBS@ @GLIB_LIBS@ @DLOG_LIBS@ \
                                -lreadline -ldl -lncurses
index 7861dfd..68466c1 100755 (executable)
@@ -39,7 +39,7 @@
 #include "dbus_helpers.h"
 #include "input.h"
 #include "services.h"
-#if defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
 #include "ins.h"
 #endif
 #include "tethering.h"
@@ -331,7 +331,7 @@ static int services_list(DBusMessageIter *iter, int errnum, const char *error,
        return 0;
 }
 
-#if defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
 static int ins_list(DBusMessageIter *iter, int errnum,
                        const char *error, void *user_data)
 {
@@ -445,7 +445,7 @@ static int cmd_services(char *args[], int num, struct connman_option *options)
                        object_properties, path, NULL, NULL);
 }
 
-#if defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
 static int cmd_ins(char *args[], int num, struct connman_option *options)
 {
        char *filter = NULL;
@@ -3008,7 +3008,7 @@ static struct connman_option service_options[] = {
        { NULL, }
 };
 
-#if defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
 static struct connman_option ins_options[] = {
        {"all",         'a', ""},
        {"filter-ssid", 's', "ssid"},
@@ -3472,7 +3472,7 @@ static const struct {
          "Display tethering clients", NULL },
        { "services",     "[<service>]",  service_options, cmd_services,
          "Display services", lookup_service_arg },
-#if defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
        { "ins",                  NULL,      ins_options, cmd_ins,
          "Display intelligent network selection", NULL },
 #endif
index ec8bdbb..e39b6ba 100644 (file)
@@ -80,13 +80,6 @@ AC_ARG_ENABLE(tizen-ext,
                        fi])
 AM_CONDITIONAL(TIZEN_EXT, test "${enable-tizen-ext}" != "no")
 
-AC_ARG_ENABLE(tizen-ext-ins,
-       AS_HELP_STRING([--enable-tizen-ext-ins], [enable TIZEN extensions for INS]),
-                       [if (test "${enableval}" = "yes"); then
-                               CFLAGS="$CFLAGS -DTIZEN_EXT_INS"
-                       fi])
-AM_CONDITIONAL(TIZEN_EXT_INS, test "${enable_tizen_ext_ins}" != "no")
-
 AC_ARG_ENABLE(tizen-ext-wifi-mesh,
        AS_HELP_STRING([--enable-tizen-ext-wifi-mesh], [enable TIZEN extensions for Wi-Fi Mesh]),
                        [CFLAGS="$CFLAGS -DTIZEN_EXT_WIFI_MESH"], [enable_tizen_ext_wifi_mesh="no"])
index 141d5ac..954bbf5 100755 (executable)
@@ -301,13 +301,11 @@ struct g_connman_bssids {
        bool is_last_connected;
        unsigned int est_throughput;
        int score_snr;
-#if defined TIZEN_EXT_INS
        int score_last_connected_bssid;
        int score_assoc_reject;
        int score_frequency;
        int score_strength;
        int score_est_throughput;
-#endif
        int ins_score;
 };
 #endif
@@ -552,8 +550,7 @@ void g_supplicant_network_set_bss_signal(GSupplicantNetwork *network,
                int signal, int snr);
 GSupplicantNetwork *g_supplicant_interface_get_network(GSupplicantInterface *interface,
                const char *group);
-#endif
-#if defined TIZEN_EXT_INS
+
 void g_supplicant_network_set_last_connected_bssid(GSupplicantNetwork *network, const unsigned char *bssid);
 const unsigned char *g_supplicant_network_get_last_connected_bssid(GSupplicantNetwork *network);
 void g_supplicant_network_update_assoc_reject(GSupplicantInterface *interface,
@@ -618,12 +615,12 @@ struct _GSupplicantCallbacks {
 
 typedef struct _GSupplicantCallbacks GSupplicantCallbacks;
 
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
 void g_supplicant_set_ins_settings(GSupplicantINSPreferredFreq preferred_freq_bssid,
                bool last_connected_bssid, bool assoc_reject, bool signal_bssid,
                unsigned int preferred_freq_bssid_score, unsigned int last_connected_bssid_score,
                unsigned int assoc_reject_score, int signal_level3_5ghz, int signal_level3_24ghz);
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
 
 #if defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET
 void g_supplicant_replace_config_file(const char *ifname, const char *config_file);
index 072edac..05f67f1 100755 (executable)
@@ -175,7 +175,7 @@ static struct strvalmap mode_capa_map[] = {
        { }
 };
 
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
 struct _GSupplicantINSSettings {
        GSupplicantINSPreferredFreq preferred_freq_bssid;
        unsigned int preferred_freq_bssid_score;
@@ -189,13 +189,11 @@ struct _GSupplicantINSSettings {
 };
 
 static struct _GSupplicantINSSettings ins_settings;
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
 
-#if defined TIZEN_EXT_INS
 static unsigned char invalid_bssid[WIFI_BSSID_LEN_MAX] = {
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 };
-#endif
+#endif /* defined TIZEN_EXT */
 
 static GHashTable *interface_table;
 static GHashTable *bss_mapping;
@@ -456,9 +454,7 @@ struct assoc_count_data {
        int assoc_count;
 };
 
-#if defined TIZEN_EXT_INS
 static unsigned int last_connected_bss_timeout = 0;
-#endif
 static bool simplified_log = true;
 #endif
 
@@ -2017,7 +2013,6 @@ void *g_supplicant_network_get_wifi_vsie(GSupplicantNetwork *network)
        return vsie_list;
 }
 
-#if defined TIZEN_EXT_INS
 static bool compare_bssid(unsigned char *bssid_a, unsigned char *bssid_b)
 {
        if (!memcmp(bssid_a, bssid_b, WIFI_BSSID_LEN_MAX))
@@ -2185,7 +2180,6 @@ static int calculate_score(bool is_last_connected, uint16_t assoc_reject_cnt,
 
        return score;
 }
-#endif /* defined TIZEN_EXT_INS */
 
 static void update_bssid_list(gpointer key, gpointer value, gpointer user_data)
 {
@@ -2208,22 +2202,23 @@ static void update_bssid_list(gpointer key, gpointer value, gpointer user_data)
                bssids->est_throughput = bss->est_throughput;
                bssids->score_snr = (int)bss->snr;
 
-#if defined TIZEN_EXT_INS
-               bssids->assoc_reject_cnt = get_assoc_reject_cnt(bssid_data->assoc_reject_table, bssids->bssid);
-               bssids->is_last_connected = compare_bssid(bssids->bssid, bssid_data->last_connected_bssid);
+               if (TIZEN_INS_ENABLED) {
+                       bssids->assoc_reject_cnt = get_assoc_reject_cnt(bssid_data->assoc_reject_table, bssids->bssid);
+                       bssids->is_last_connected = compare_bssid(bssids->bssid, bssid_data->last_connected_bssid);
 
-               bssids->score_last_connected_bssid = calculate_score_last_connected_bssid(bssids->is_last_connected);
-               bssids->score_assoc_reject = calculate_score_assoc_reject(bssids->assoc_reject_cnt);
-               bssids->score_frequency = calculate_score_frequency(bss->signal, bssids->frequency);
-               bssids->score_strength = calculate_score_strength(bss->signal);
-               bssids->score_est_throughput = calculate_score_est_throughput(bss->est_throughput);
+                       bssids->score_last_connected_bssid = calculate_score_last_connected_bssid(bssids->is_last_connected);
+                       bssids->score_assoc_reject = calculate_score_assoc_reject(bssids->assoc_reject_cnt);
+                       bssids->score_frequency = calculate_score_frequency(bss->signal, bssids->frequency);
+                       bssids->score_strength = calculate_score_strength(bss->signal);
+                       bssids->score_est_throughput = calculate_score_est_throughput(bss->est_throughput);
+
+                       bssids->ins_score = calculate_score(bssids->is_last_connected,
+                                       bssids->assoc_reject_cnt, bssids->frequency, bss->signal,
+                                       bss->snr, bss->est_throughput);
+               } else {
+                       bssids->ins_score = bss->signal;
+               }
 
-               bssids->ins_score = calculate_score(bssids->is_last_connected,
-                       bssids->assoc_reject_cnt, bssids->frequency, bss->signal,
-                       bss->snr, bss->est_throughput);
-#else
-               bssids->ins_score = bss->signal;
-#endif
                bssid_data->bssid_list = g_slist_append(bssid_data->bssid_list, bssids);
        } else
                SUPPLICANT_DBG("Failed to allocate memory");
@@ -2250,7 +2245,6 @@ static gint cmp_bss(gconstpointer a, gconstpointer b)
        return 0;
 }
 
-#if defined TIZEN_EXT_INS
 static void print_bssid_sort(gpointer data, gpointer user_data)
 {
        struct g_connman_bssids *bssids = data;
@@ -2260,14 +2254,12 @@ static void print_bssid_sort(gpointer data, gpointer user_data)
        if (!bssids || !network)
                return;
 
-       if (!simplified_log)
-               SUPPLICANT_DBG("ssid [%-20s] bssid[" MACSTR "] total[%2d] freq[%2d] "
-                               "last_conn[%2d] assoc_reject[%2d] strength[%2d] rssi[%2d]",
-                               network->ssid, MAC2STR(bssids->bssid), bssids->ins_score,
-                               bssids->score_frequency, bssids->score_last_connected_bssid,
-                               bssids->score_assoc_reject, bssids->score_strength, bssids->strength - 120);
+       SUPPLICANT_DBG("ssid [%-20s] bssid[" MACSTR "] total[%2d] freq[%2d] "
+                       "last_conn[%2d] assoc_reject[%2d] strength[%2d] rssi[%2d]",
+                       network->ssid, MAC2STR(bssids->bssid), bssids->ins_score,
+                       bssids->score_frequency, bssids->score_last_connected_bssid,
+                       bssids->score_assoc_reject, bssids->score_strength, bssids->strength - 120);
 }
-#endif
 
 void *g_supplicant_network_get_bssid_list(GSupplicantNetwork *network)
 {
@@ -2283,14 +2275,12 @@ void *g_supplicant_network_get_bssid_list(GSupplicantNetwork *network)
 
        g_hash_table_foreach(network->bss_table, update_bssid_list, &bssid_data);
        bssid_data.bssid_list = g_slist_sort(bssid_data.bssid_list, cmp_bss);
-#if defined TIZEN_EXT_INS
-       g_slist_foreach(bssid_data.bssid_list, print_bssid_sort, (gpointer)network);
-#endif
+       if (TIZEN_INS_ENABLED && !simplified_log)
+               g_slist_foreach(bssid_data.bssid_list, print_bssid_sort, (gpointer)network);
 
        return bssid_data.bssid_list;
 }
 
-#if defined TIZEN_EXT_INS
 void g_supplicant_network_set_last_connected_bssid(GSupplicantNetwork *network, const unsigned char *bssid)
 {
        if (!bssid)
@@ -2391,7 +2381,6 @@ GHashTable *g_supplicant_network_clone_assoc_reject_table(GSupplicantNetwork *ne
 
        return cloned_assoc_reject_table;
 }
-#endif /* defined TIZEN_EXT_INS */
 
 GSupplicantNetwork *g_supplicant_interface_get_network(GSupplicantInterface *interface,
                const char *group)
@@ -2670,21 +2659,21 @@ static bool update_best_bss(GSupplicantNetwork *network,
                return true;
        }
 
-#if defined TIZEN_EXT_INS
-       score_new = calculate_score(
-               compare_bssid(bss->bssid, network->last_connected_bssid),
-               get_assoc_reject_cnt(network->assoc_reject_table, bss->bssid),
-               bss->frequency, bss->signal, bss->snr, bss->est_throughput);
+       if (TIZEN_INS_ENABLED) {
+               score_new = calculate_score(
+                               compare_bssid(bss->bssid, network->last_connected_bssid),
+                               get_assoc_reject_cnt(network->assoc_reject_table, bss->bssid),
+                               bss->frequency, bss->signal, bss->snr, bss->est_throughput);
 
-       score_best = calculate_score(
-               compare_bssid(network->best_bss->bssid, network->last_connected_bssid),
-               get_assoc_reject_cnt(network->assoc_reject_table, network->best_bss->bssid),
-               network->best_bss->frequency, network->best_bss->signal,
-               network->best_bss->snr, network->best_bss->est_throughput);
-#else
-       score_new = bss->signal;
-       score_best = network->best_bss->signal;
-#endif
+               score_best = calculate_score(
+                               compare_bssid(network->best_bss->bssid, network->last_connected_bssid),
+                               get_assoc_reject_cnt(network->assoc_reject_table, network->best_bss->bssid),
+                               network->best_bss->frequency, network->best_bss->signal,
+                               network->best_bss->snr, network->best_bss->est_throughput);
+       } else {
+               score_new = bss->signal;
+               score_best = network->best_bss->signal;
+       }
 
        if (score_new > score_best) {
                SUPPLICANT_DBG("new[" MACSTR "][%d] : best[" MACSTR "][%d]",
@@ -3553,7 +3542,7 @@ static void update_network_signal(GSupplicantNetwork *network)
        SUPPLICANT_DBG("New network signal %d", network->signal);
 }
 
-#if defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
 static gboolean last_connected_timeout(gpointer data)
 {
        GSupplicantInterface *interface = data;
@@ -3604,7 +3593,7 @@ static void remove_timer_for_last_connected(GSupplicantInterface *interface)
                }
        }
 }
-#endif /* defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
 
 static void interface_current_bss(GSupplicantInterface *interface,
                                                DBusMessageIter *iter)
@@ -3700,8 +3689,9 @@ static void interface_current_bss(GSupplicantInterface *interface,
        case G_SUPPLICANT_STATE_GROUP_HANDSHAKE:
        case G_SUPPLICANT_STATE_COMPLETED:
                callback_network_associated(network);
-#if defined TIZEN_EXT_INS
-               add_timer_for_last_connected(interface);
+#if defined TIZEN_EXT
+               if (TIZEN_INS_ENABLED)
+                       add_timer_for_last_connected(interface);
 #endif
                break;
        }
@@ -3859,16 +3849,18 @@ static void interface_property(const char *key, DBusMessageIter *iter,
                                interface->state = string2state(str);
                                callback_interface_state(interface);
                        }
-#if defined TIZEN_EXT_INS
-               switch (interface->state) {
-               case G_SUPPLICANT_STATE_COMPLETED:
-                       add_timer_for_last_connected(interface);
-                       break;
-               case G_SUPPLICANT_STATE_DISCONNECTED:
-                       remove_timer_for_last_connected(interface);
-                       break;
-               default:
-                       break;
+#if defined TIZEN_EXT
+               if (TIZEN_INS_ENABLED) {
+                       switch (interface->state) {
+                       case G_SUPPLICANT_STATE_COMPLETED:
+                               add_timer_for_last_connected(interface);
+                               break;
+                       case G_SUPPLICANT_STATE_DISCONNECTED:
+                               remove_timer_for_last_connected(interface);
+                               break;
+                       default:
+                               break;
+                       }
                }
 #endif
                if (interface->ap_create_in_progress) {
@@ -8803,7 +8795,7 @@ static void invoke_introspect_method(void)
        dbus_message_unref(message);
 }
 
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
 void g_supplicant_set_ins_settings(GSupplicantINSPreferredFreq preferred_freq_bssid,
                bool last_connected_bssid, bool assoc_reject, bool signal_bssid,
                unsigned int preferred_freq_bssid_score, unsigned int last_connected_bssid_score,
@@ -8829,7 +8821,7 @@ void g_supplicant_set_ins_settings(GSupplicantINSPreferredFreq preferred_freq_bs
        SUPPLICANT_DBG("signal_level3_5ghz [%d]", signal_level3_5ghz);
        SUPPLICANT_DBG("signal_level3_24ghz [%d]", signal_level3_24ghz);
 }
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
 
 #if defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET
 void g_supplicant_register_eap_callback(g_supplicant_eap_callback cb)
index 9f1a611..f9bd3c0 100755 (executable)
@@ -79,12 +79,10 @@ struct connman_bssids {
        uint16_t frequency;
        uint16_t assoc_reject_cnt;
        bool is_last_connected;
-#if defined TIZEN_EXT_INS
        int score_last_connected_bssid;
        int score_assoc_reject;
        int score_frequency;
        int score_strength;
-#endif
        int ins_score;
 };
 
@@ -236,14 +234,14 @@ int connman_network_set_bssid_list(struct connman_network *network,
                                        GSList *bssids);
 void *connman_network_get_bssid_list(struct connman_network *network);
 unsigned int connman_network_get_max_bssid_count(struct connman_network *network);
-#if defined TIZEN_EXT_INS
+
 int connman_network_set_last_connected_bssid(struct connman_network *network,
                                const unsigned char *bssid);
 unsigned char *connman_network_get_last_connected_bssid(struct connman_network *network);
 void connman_network_set_assoc_reject_table(struct connman_network *network,
                GHashTable *assoc_reject_table);
 GHashTable *connman_network_get_assoc_reject_table(struct connman_network *network);
-#endif /* defined TIZEN_EXT_INS */
+
 __time_t connman_network_get_roam_scan_time(struct connman_network *network);
 void connman_network_set_roam_scan_time(struct connman_network *network,
                                                __time_t roam_scan_time);
index f141bf6..4fb4957 100755 (executable)
 extern "C" {
 #endif
 
-bool connman_setting_get_bool(const char *key);
 #if defined TIZEN_EXT
+/* AP selection method to be used */
+typedef enum {
+       AP_SELECTION_METHOD_NORMAL = 0,
+       AP_SELECTION_METHOD_INS = 1,
+} ap_selection_method_e;
+
+#define TIZEN_INS_ENABLED \
+       (connman_setting_get_int("ApSelectionMethod") == AP_SELECTION_METHOD_INS)
+
 int connman_setting_get_int(const char *key);
 #endif
+
+bool connman_setting_get_bool(const char *key);
 unsigned int connman_setting_get_uint(const char *key);
 char *connman_setting_get_string(const char *key);
 char **connman_setting_get_string_list(const char *key);
index ba2c24c..57ddea0 100644 (file)
@@ -168,8 +168,7 @@ chmod +x bootstrap
            --sysconfdir=/etc \
            --enable-client \
            --enable-tizen-ext \
-           --disable-tizen-ext-ins \
-            --enable-tizen-ext-eap-on-ethernet \
+           --enable-tizen-ext-eap-on-ethernet \
            --enable-pacrunner \
             --enable-wifi=builtin \
 %if %{with connman_openconnect}
index 13ea9a3..01d119e 100755 (executable)
@@ -4986,19 +4986,19 @@ static void interface_state(GSupplicantInterface *interface)
                        GSList *bssid_list = NULL;
                        guint bssid_length = 0;
 
-#if defined TIZEN_EXT_INS
-                       const char *group = connman_network_get_group(network);
-                       GSupplicantNetwork *supplicant_network;
+                       if (TIZEN_INS_ENABLED) {
+                               const char *group = connman_network_get_group(network);
+                               GSupplicantNetwork *supplicant_network;
 
-                       if (group) {
-                               supplicant_network = g_supplicant_interface_get_network(interface, group);
+                               if (group) {
+                                       supplicant_network = g_supplicant_interface_get_network(interface, group);
 
-                               connman_network_set_assoc_reject_table(network,
-                                               g_supplicant_network_clone_assoc_reject_table(supplicant_network));
+                                       connman_network_set_assoc_reject_table(network,
+                                                       g_supplicant_network_clone_assoc_reject_table(supplicant_network));
 
-                               g_supplicant_network_update_assoc_reject(interface, supplicant_network);
+                                       g_supplicant_network_update_assoc_reject(interface, supplicant_network);
+                               }
                        }
-#endif
 
                        bssid_list = (GSList *)connman_network_get_bssid_list(network);
                        if (bssid_list)
@@ -5662,12 +5662,13 @@ static void network_added(GSupplicantNetwork *supplicant_network)
                        g_supplicant_network_is_hs20AP(supplicant_network));
        connman_network_set_bssid_list(network,
                        (GSList *)g_supplicant_network_get_bssid_list(supplicant_network));
-#endif
-#if defined TIZEN_EXT_INS
-       connman_network_set_last_connected_bssid(network,
-                       g_supplicant_network_get_last_connected_bssid(supplicant_network));
-       connman_network_set_assoc_reject_table(network,
-                       g_supplicant_network_clone_assoc_reject_table(supplicant_network));
+
+       if (TIZEN_INS_ENABLED) {
+               connman_network_set_last_connected_bssid(network,
+                               g_supplicant_network_get_last_connected_bssid(supplicant_network));
+               connman_network_set_assoc_reject_table(network,
+                               g_supplicant_network_clone_assoc_reject_table(supplicant_network));
+       }
 #endif
 
        connman_network_set_available(network, true);
@@ -5680,12 +5681,11 @@ static void network_added(GSupplicantNetwork *supplicant_network)
 #endif
                connman_network_set_group(network, group);
 
-#if defined TIZEN_EXT_INS
-       g_supplicant_network_set_last_connected_bssid(supplicant_network,
-                       connman_network_get_last_connected_bssid(network));
-#endif
-
 #if defined TIZEN_EXT
+       if (TIZEN_INS_ENABLED)
+               g_supplicant_network_set_last_connected_bssid(supplicant_network,
+                               connman_network_get_last_connected_bssid(network));
+
        if (wifi_first_scan == true)
                found_with_first_scan = true;
 #endif
@@ -5845,35 +5845,39 @@ static void network_changed(GSupplicantNetwork *network, const char *property)
                                        calculate_strength(network));
                update_needed = true;
        }
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
-       else if (g_str_equal(property, "LastConnectedBSSID")) {
-               const char *ident, *group;
-               char *service_ident;
-               bool need_save;
-
-               ident = connman_device_get_ident(wifi->device);
-               group = connman_network_get_group(connman_network);
-               if (ident && group) {
-                       service_ident = g_strdup_printf("%s_%s_%s",
-                               __connman_network_get_type(connman_network), ident, group);
-
-                       need_save = connman_device_set_last_connected_ident(wifi->device, service_ident);
-                       if (need_save)
-                               connman_device_save_last_connected(wifi->device);
-
-                       g_free(service_ident);
-               }
+#if defined TIZEN_EXT
+       else if (TIZEN_INS_ENABLED) {
+               if (g_str_equal(property, "LastConnectedBSSID")) {
+                       const char *ident, *group;
+                       char *service_ident;
+                       bool need_save;
+
+                       ident = connman_device_get_ident(wifi->device);
+                       group = connman_network_get_group(connman_network);
+                       if (ident && group) {
+                               service_ident = g_strdup_printf("%s_%s_%s",
+                                               __connman_network_get_type(connman_network), ident, group);
+
+                               need_save = connman_device_set_last_connected_ident(wifi->device, service_ident);
+                               if (need_save)
+                                       connman_device_save_last_connected(wifi->device);
+
+                               g_free(service_ident);
+                       }
 
-               connman_network_set_last_connected_bssid(connman_network,
+                       connman_network_set_last_connected_bssid(connman_network,
                                        g_supplicant_network_get_last_connected_bssid(network));
 
-               update_needed = true;
-       } else if (g_str_equal(property, "UpdateAssocReject")) {
-               connman_network_set_assoc_reject_table(connman_network,
-                               g_supplicant_network_clone_assoc_reject_table(network));
-               update_needed = true;
+                       update_needed = true;
+               } else if (g_str_equal(property, "UpdateAssocReject")) {
+                       connman_network_set_assoc_reject_table(connman_network,
+                                       g_supplicant_network_clone_assoc_reject_table(network));
+                       update_needed = true;
+               } else {
+                       update_needed = false;
+               }
        }
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
        else
                update_needed = false;
 
@@ -6741,7 +6745,7 @@ static int tech_set_regdom(struct connman_technology *technology, const char *al
        return g_supplicant_set_country(alpha2, regdom_callback, NULL);
 }
 
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
 static void supp_ins_init(void)
 {
        const char *string;
@@ -6766,7 +6770,7 @@ static void supp_ins_init(void)
                connman_setting_get_int("INSSignalLevel3_2_4GHz")
        );
 }
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
 
 static struct connman_technology_driver tech_driver = {
        .name           = "wifi",
@@ -6815,11 +6819,10 @@ static int wifi_init(void)
        DBG("RoamScan Int: %d, Min SNR: %d, Min RSSI: %d(2.4GHz), %d(5GHz)",
                        roam_scan_interval, min_snr, min_rssi_2_4GHz, min_rssi_5GHz);
 
-#endif
 
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
-       supp_ins_init();
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+       if (TIZEN_INS_ENABLED)
+               supp_ins_init();
+#endif /* defined TIZEN_EXT */
        return 0;
 }
 
index 902dd3e..5b72d07 100755 (executable)
@@ -757,11 +757,9 @@ int __connman_service_move(struct connman_service *service,
 int __connman_service_load_modifiable(struct connman_service *service);
 
 void __connman_service_list_struct(DBusMessageIter *iter);
-#if defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
 void __connman_ins_list_struct(DBusMessageIter *iter);
-#endif
 
-#if defined TIZEN_EXT
 int connman_service_get_ipv6_dns_method(struct connman_service *service);
 enum connman_dnsconfig_method {
        CONNMAN_DNSCONFIG_METHOD_UNKNOWN = 0,
index 5116900..054b1cd 100755 (executable)
@@ -882,7 +882,7 @@ const char *connman_device_get_last_connected_ident(struct connman_device *devic
 }
 #endif
 
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
 void connman_device_save_last_user_selection(struct connman_device *device)
 {
        GKeyFile *keyfile;
@@ -1016,7 +1016,7 @@ void connman_device_load_last_connected(struct connman_device *device)
 
        g_key_file_free(keyfile);
 }
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
 
 static void mark_network_available(gpointer key, gpointer value,
                                                        gpointer user_data)
@@ -2050,10 +2050,12 @@ struct connman_device *connman_device_create_from_index(int index)
 
        connman_device_set_index(device, index);
        connman_device_set_interface(device, devname);
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
-       connman_device_load_last_connected(device);
-       connman_device_load_last_user_selection(device);
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#if defined TIZEN_EXT
+       if (TIZEN_INS_ENABLED) {
+               connman_device_load_last_connected(device);
+               connman_device_load_last_user_selection(device);
+       }
+#endif /* defined TIZEN_EXT */
 
        if (ident) {
                connman_device_set_ident(device, ident);
index e83e43f..bf78690 100755 (executable)
@@ -126,6 +126,7 @@ static struct {
        int wifi_roam_min_rssi_2_4GHz;
        int wifi_roam_min_rssi_5GHz;
        bool auto_connection_scan;
+       int wifi_ap_selection_method;
 #endif
 } connman_settings  = {
        .bg_scan = true,
@@ -169,6 +170,7 @@ static struct {
        .wifi_roam_min_rssi_2_4GHz = 0,
        .wifi_roam_min_rssi_5GHz = 0,
        .auto_connection_scan = false,
+       .wifi_ap_selection_method = AP_SELECTION_METHOD_NORMAL,
 #endif
 };
 
@@ -269,6 +271,7 @@ static struct {
 #define CONF_WIFI_ROAM_MIN_RSSI_2_4     "WifiRoamingMinRSSI_2_4GHz"
 #define CONF_WIFI_ROAM_MIN_RSSI_5       "WifiRoamingMinRSSI_5GHz"
 #define CONF_WIFI_AUTO_CONNECTION_SCAN  "AutoConnectionScan"
+#define CONF_WIFI_AP_SELECTION_METHOD   "ApSelectionMethod"
 #endif
 
 #if defined TIZEN_EXT
@@ -341,6 +344,7 @@ static const char *supported_options[] = {
        CONF_WIFI_ROAM_MIN_RSSI_2_4,
        CONF_WIFI_ROAM_MIN_RSSI_5,
        CONF_WIFI_AUTO_CONNECTION_SCAN,
+       CONF_WIFI_AP_SELECTION_METHOD,
 #endif
        NULL
 };
@@ -799,6 +803,13 @@ static void check_tizen_configuration(GKeyFile *config)
 
        g_clear_error(&error);
 
+       integer = g_key_file_get_integer(config, "General",
+                       CONF_WIFI_AP_SELECTION_METHOD, &error);
+       if (!error)
+               connman_settings.wifi_ap_selection_method = integer;
+
+       g_clear_error(&error);
+
        check_tizen_ins_configuration(config);
 }
 
@@ -1400,6 +1411,9 @@ unsigned int connman_setting_get_uint(const char *key)
 #if defined TIZEN_EXT
 int connman_setting_get_int(const char *key)
 {
+       if (g_str_equal(key, CONF_WIFI_AP_SELECTION_METHOD))
+               return connman_settings.wifi_ap_selection_method;
+
        if (g_str_equal(key, CONF_INS_SIGNAL_LEVEL3_5GHZ))
                return connman_ins_settings.ins_signal_level3_5ghz;
 
index e0ad97d..c25eb6f 100755 (executable)
@@ -234,6 +234,11 @@ DefaultWifiInterface = wlan0
 # Default value is false.
 # AutoConnectionScan = true
 
+# This value indicates which AP selection method to be used.
+# 0: Normal(Signal strength)
+# 1: INS
+ApSelectionMethod = 0
+
 [INS]
 # INS(Intelligent Network Selection) configuration: BSSID Selection.
 INSPreferredFreqBSSID = 5GHz
index 0896e89..8b2a6d5 100755 (executable)
@@ -234,6 +234,11 @@ DefaultWifiInterface = wlan0
 # Default value is false.
 # AutoConnectionScan = true
 
+# This value indicates which AP selection method to be used.
+# 0: Normal(Signal strength)
+# 1: INS
+ApSelectionMethod = 0
+
 [INS]
 # INS(Intelligent Network Selection) configuration: BSSID Selection.
 INSPreferredFreqBSSID = 5GHz
index ce9d711..b40394c 100755 (executable)
@@ -120,6 +120,11 @@ TizenTVExtension = true
 # Default value is wlan0.
 DefaultWifiInterface = wlan0
 
+# This value indicates which AP selection method to be used.
+# 0: Normal(Signal strength)
+# 1: INS
+ApSelectionMethod = 0
+
 [INS]
 # INS(Intelligent Network Selection) configuration: BSSID Selection.
 INSPreferredFreqBSSID = 5GHz
index 0000f78..b5d5810 100755 (executable)
@@ -266,9 +266,7 @@ static DBusMessage *get_connected_service(DBusConnection *conn,
 
        return connman_service_create_dbus_service_reply(msg, service);
 }
-#endif
 
-#if defined TIZEN_EXT_INS
 static void append_ins_structs(DBusMessageIter *iter, void *user_data)
 {
        __connman_ins_list_struct(iter);
@@ -283,8 +281,9 @@ static DBusMessage *get_ins(DBusConnection *conn,
        if (!reply)
                return NULL;
 
-       __connman_dbus_append_objpath_dict_array(reply,
-                       append_ins_structs, NULL);
+       if (TIZEN_INS_ENABLED)
+               __connman_dbus_append_objpath_dict_array(reply,
+                               append_ins_structs, NULL);
 
        return reply;
 }
@@ -751,8 +750,6 @@ static const GDBusMethodTable manager_methods[] = {
                        GDBUS_ARGS({ "ifname", "s" }),
                        GDBUS_ARGS({ "service", "oa{sv}" }),
                        get_connected_service) },
-#endif
-#if defined TIZEN_EXT_INS
        { GDBUS_METHOD("GetINS",
                        NULL, GDBUS_ARGS({ "services", "a(oa{sv})" }),
                        get_ins) },
index bd86361..d9bd626 100755 (executable)
@@ -58,7 +58,7 @@ static DBusConnection *connection;
 
 #define DHCP_RETRY_TIMEOUT     10
 
-#if defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
 static unsigned char invalid_bssid[WIFI_BSSID_LEN_MAX] = {
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 };
@@ -1363,9 +1363,9 @@ static void network_destruct(struct connman_network *network)
 #if defined TIZEN_EXT
        g_slist_free_full(network->wifi.vsie_list, g_free);
        g_slist_free_full(network->wifi.bssid_list, g_free);
-#endif
-#if defined TIZEN_EXT_INS
-       g_hash_table_destroy(network->wifi.assoc_reject_table);
+
+       if (TIZEN_INS_ENABLED)
+               g_hash_table_destroy(network->wifi.assoc_reject_table);
 #endif
        g_free(network->path);
        g_free(network->group);
@@ -2722,7 +2722,6 @@ unsigned int connman_network_get_max_bssid_count(struct connman_network *network
        return network->wifi.max_bssid_count;
 }
 
-#if defined TIZEN_EXT_INS
 int connman_network_set_last_connected_bssid(struct connman_network *network,
                                const unsigned char *bssid)
 {
@@ -2763,7 +2762,6 @@ GHashTable *connman_network_get_assoc_reject_table(struct connman_network *netwo
 
        return network->wifi.assoc_reject_table;
 }
-#endif /* defined TIZEN_EXT_INS */
 
 __time_t connman_network_get_roam_scan_time(struct connman_network *network)
 {
index b535142..bbd40ae 100755 (executable)
@@ -81,14 +81,11 @@ struct saved_profiles {
        GTimeVal modified;
        gchar *profile_name;
 };
-#endif
-#if defined TIZEN_EXT_INS
+
 static unsigned char invalid_bssid[WIFI_BSSID_LEN_MAX] = {
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 };
-#endif
 
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
 enum connman_ins_preferred_freq {
        CONNMAN_INS_PREFERRED_FREQ_UNKNOWN,
        CONNMAN_INS_PREFERRED_FREQ_24GHZ,
@@ -114,7 +111,7 @@ struct connman_ins_settings {
 };
 
 static struct connman_ins_settings ins_settings;
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
 
 struct connman_stats {
        bool valid;
@@ -236,12 +233,10 @@ struct connman_service {
 
        enum connman_dnsconfig_method dns_config_method_ipv4;
        enum connman_dnsconfig_method dns_config_method_ipv6;
-#endif
-#if defined TIZEN_EXT
+
        char *connector;
        char *c_sign_key;
        char *net_access_key;
-#if defined TIZEN_EXT_INS
        unsigned char last_connected_bssid[WIFI_BSSID_LEN_MAX];
        bool is_internet_connection;
        int assoc_reject_count;
@@ -251,7 +246,6 @@ struct connman_service {
        int score_security_priority;
        int score_internet_connection;
        int score_strength;
-#endif
        int ins_score;
 #endif
 #if defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET
@@ -829,7 +823,7 @@ static int connman_service_set_eapol_property(struct connman_service *service,
 }
 #endif
 
-#if defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
 static void save_assoc_reject(gpointer key, gpointer value, gpointer user_data)
 {
        struct assoc_reject_data *assoc_rd = value;
@@ -1062,7 +1056,7 @@ done:
        g_key_file_free(keyfile);
        return err;
 }
-#endif /* defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
 
 static int service_load(struct connman_service *service)
 {
@@ -1073,7 +1067,7 @@ static int service_load(struct connman_service *service)
        bool autoconnect;
        unsigned int ssid_len;
        int err = 0;
-#if defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
        bool internet_connection;
 #endif
 #if defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET
@@ -1163,45 +1157,47 @@ static int service_load(struct connman_service *service)
                        g_free(hex_ssid);
                }
 
-#if defined TIZEN_EXT_INS
-               /* Last connected BSSID */
-               if (service->network) {
-                       gchar *bssid_str;
-                       unsigned char last_connected_bssid[WIFI_BSSID_LEN_MAX];
-                       char **str_list;
-                       unsigned int i;
+#if defined TIZEN_EXT
+               if (TIZEN_INS_ENABLED) {
+                       /* Last connected BSSID */
+                       if (service->network) {
+                               gchar *bssid_str;
+                               unsigned char last_connected_bssid[WIFI_BSSID_LEN_MAX];
+                               char **str_list;
+                               unsigned int i;
 
-                       bssid_str = g_key_file_get_string(keyfile,
-                               service->identifier, "LastConnectedBSSID", NULL);
+                               bssid_str = g_key_file_get_string(keyfile,
+                                               service->identifier, "LastConnectedBSSID", NULL);
 
-                       if (bssid_str) {
-                               str_list = g_strsplit(bssid_str, ":", 0);
+                               if (bssid_str) {
+                                       str_list = g_strsplit(bssid_str, ":", 0);
 
-                               if (str_list) {
-                                       for (i = 0; i < WIFI_BSSID_LEN_MAX; i++)
-                                               last_connected_bssid[i] = strtol(str_list[i], NULL, 16);
+                                       if (str_list) {
+                                               for (i = 0; i < WIFI_BSSID_LEN_MAX; i++)
+                                                       last_connected_bssid[i] = strtol(str_list[i], NULL, 16);
 
-                                       memcpy(service->last_connected_bssid,
-                                               last_connected_bssid, WIFI_BSSID_LEN_MAX);
+                                               memcpy(service->last_connected_bssid,
+                                                               last_connected_bssid, WIFI_BSSID_LEN_MAX);
 
-                                       connman_network_set_last_connected_bssid(service->network,
-                                               last_connected_bssid);
+                                               connman_network_set_last_connected_bssid(service->network,
+                                                               last_connected_bssid);
 
-                                       g_strfreev(str_list);
-                               }
+                                               g_strfreev(str_list);
+                                       }
 
-                               g_free(bssid_str);
+                                       g_free(bssid_str);
+                               }
                        }
-               }
 
-               /* Internet connection */
-               internet_connection = g_key_file_get_boolean(keyfile,
-                               service->identifier, "InternetConnection", &error);
-               if (!error)
-                       service->is_internet_connection = internet_connection;
+                       /* Internet connection */
+                       internet_connection = g_key_file_get_boolean(keyfile,
+                                       service->identifier, "InternetConnection", &error);
+                       if (!error)
+                               service->is_internet_connection = internet_connection;
 
-               g_clear_error(&error);
-#endif /* defined TIZEN_EXT_INS */
+                       g_clear_error(&error);
+               }
+#endif /* defined TIZEN_EXT */
                /* fall through */
 
        case CONNMAN_SERVICE_TYPE_GADGET:
@@ -1478,7 +1474,7 @@ static int service_save(struct connman_service *service)
                if (service->network) {
                        const unsigned char *ssid;
                        unsigned int ssid_len = 0;
-#if defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
                        GHashTable *assoc_reject_table;
 #endif
 
@@ -1510,69 +1506,70 @@ static int service_save(struct connman_service *service)
                        g_key_file_set_integer(keyfile, service->identifier,
                                                "Frequency", freq);
 
-#if defined TIZEN_EXT_INS
-                       /* Last connected BSSID */
-                       if (memcmp(service->last_connected_bssid, invalid_bssid, WIFI_BSSID_LEN_MAX)) {
-                               char *identifier = service->identifier;
-                               GString *bssid_str;
-                               unsigned int i;
+#if defined TIZEN_EXT
+                       if (TIZEN_INS_ENABLED) {
+                               /* Last connected BSSID */
+                               if (memcmp(service->last_connected_bssid, invalid_bssid, WIFI_BSSID_LEN_MAX)) {
+                                       char *identifier = service->identifier;
+                                       GString *bssid_str;
+                                       unsigned int i;
 
-                               bssid_str = g_string_sized_new(18);
-                               if (!bssid_str) {
-                                       err = -ENOMEM;
-                                       goto done;
-                               }
+                                       bssid_str = g_string_sized_new(18);
+                                       if (!bssid_str) {
+                                               err = -ENOMEM;
+                                               goto done;
+                                       }
 
-                               for (i = 0; i < WIFI_BSSID_LEN_MAX; i++) {
-                                       g_string_append_printf(bssid_str,
-                                                       "%02x", service->last_connected_bssid[i]);
-                                       if (i < WIFI_BSSID_LEN_MAX - 1)
-                                               g_string_append(bssid_str, ":");
-                               }
+                                       for (i = 0; i < WIFI_BSSID_LEN_MAX; i++) {
+                                               g_string_append_printf(bssid_str,
+                                                               "%02x", service->last_connected_bssid[i]);
+                                               if (i < WIFI_BSSID_LEN_MAX - 1)
+                                                       g_string_append(bssid_str, ":");
+                                       }
 
-                               g_key_file_set_string(keyfile, identifier,
+                                       g_key_file_set_string(keyfile, identifier,
                                                        "LastConnectedBSSID", bssid_str->str);
 
-                               DBG("last connected bssid[%s]", bssid_str->str);
+                                       DBG("last connected bssid[%s]", bssid_str->str);
 
-                               g_string_free(bssid_str, TRUE);
-                       }
-
-                       /* Assoc reject */
-                       assoc_reject_table = connman_network_get_assoc_reject_table(service->network);
-                       if (assoc_reject_table && g_hash_table_size(assoc_reject_table) > 0) {
-                               GString *assoc_reject_str;
-                               char **assoc_reject_list;
-                               guint assoc_reject_len;
-
-                               assoc_reject_str = g_string_new(NULL);
-                               if (!assoc_reject_str) {
-                                       err = -ENOMEM;
-                                       goto done;
+                                       g_string_free(bssid_str, TRUE);
                                }
 
-                               g_hash_table_foreach(assoc_reject_table, save_assoc_reject, assoc_reject_str);
+                               /* Assoc reject */
+                               assoc_reject_table = connman_network_get_assoc_reject_table(service->network);
+                               if (assoc_reject_table && g_hash_table_size(assoc_reject_table) > 0) {
+                                       GString *assoc_reject_str;
+                                       char **assoc_reject_list;
+                                       guint assoc_reject_len;
 
-                               assoc_reject_list = g_strsplit_set(assoc_reject_str->str, " ", 0);
-                               assoc_reject_len = g_strv_length(assoc_reject_list);
+                                       assoc_reject_str = g_string_new(NULL);
+                                       if (!assoc_reject_str) {
+                                               err = -ENOMEM;
+                                               goto done;
+                                       }
 
-                               g_key_file_set_string_list(keyfile, service->identifier,
-                                       "AssocReject", (const gchar **)assoc_reject_list, assoc_reject_len);
+                                       g_hash_table_foreach(assoc_reject_table, save_assoc_reject, assoc_reject_str);
 
-                               DBG("assoc reject table [%d]", assoc_reject_len);
+                                       assoc_reject_list = g_strsplit_set(assoc_reject_str->str, " ", 0);
+                                       assoc_reject_len = g_strv_length(assoc_reject_list);
 
-                               g_strfreev(assoc_reject_list);
-                               g_string_free(assoc_reject_str, TRUE);
-                       } else
-                               g_key_file_remove_key(keyfile, service->identifier, "AssocReject", NULL);
+                                       g_key_file_set_string_list(keyfile, service->identifier,
+                                                       "AssocReject", (const gchar **)assoc_reject_list, assoc_reject_len);
 
-                       /* Internet connection */
-                       g_key_file_set_boolean(keyfile, service->identifier,
-                                       "InternetConnection", service->is_internet_connection);
+                                       DBG("assoc reject table [%d]", assoc_reject_len);
+
+                                       g_strfreev(assoc_reject_list);
+                                       g_string_free(assoc_reject_str, TRUE);
+                               } else
+                                       g_key_file_remove_key(keyfile, service->identifier, "AssocReject", NULL);
 
-                       DBG("internet connection [%s]", service->is_internet_connection ? "true" : "false");
+                               /* Internet connection */
+                               g_key_file_set_boolean(keyfile, service->identifier,
+                                               "InternetConnection", service->is_internet_connection);
 
-#endif /* defined TIZEN_EXT_INS */
+                               DBG("internet connection [%s]", service->is_internet_connection ? "true" : "false");
+                       }
+#endif /* defined TIZEN_EXT */
                }
                /* fall through */
 
@@ -3144,33 +3141,32 @@ static void state_changed(struct connman_service *service)
 #if defined TIZEN_EXT
 static void connect_reason_changed(struct connman_service *service)
 {
-#if defined TIZEN_EXT_INS
        struct connman_device *device;
-#endif
+
        if (!service->path)
                return;
 
        if (!allow_property_changed(service))
                return;
 
-#if defined TIZEN_EXT_INS
-       if (service->connect_reason == CONNMAN_SERVICE_CONNECT_REASON_USER) {
-               device = connman_network_get_device(service->network);
-               if (device) {
-                       bool need_save = false;
+       if (TIZEN_INS_ENABLED) {
+               if (service->connect_reason == CONNMAN_SERVICE_CONNECT_REASON_USER) {
+                       device = connman_network_get_device(service->network);
+                       if (device) {
+                               bool need_save = false;
 
-                       need_save |= connman_device_set_last_user_selection_ident(device, service->identifier);
-                       need_save |= connman_device_set_last_user_selection_time(device, time(NULL));
+                               need_save |= connman_device_set_last_user_selection_ident(device, service->identifier);
+                               need_save |= connman_device_set_last_user_selection_time(device, time(NULL));
 
-                       DBG("last user selection ident[%s] time[%ld]",
-                               connman_device_get_last_user_selection_ident(device),
-                               connman_device_get_last_user_selection_time(device));
+                               DBG("last user selection ident[%s] time[%ld]",
+                                               connman_device_get_last_user_selection_ident(device),
+                                               connman_device_get_last_user_selection_time(device));
 
-                       if (need_save)
-                               connman_device_save_last_user_selection(device);
+                               if (need_save)
+                                       connman_device_save_last_user_selection(device);
+                       }
                }
        }
-#endif
 
        connman_dbus_property_changed_basic(service->path,
                                        CONNMAN_SERVICE_INTERFACE,
@@ -3178,9 +3174,7 @@ static void connect_reason_changed(struct connman_service *service)
                                        DBUS_TYPE_INT32,
                                        &service->connect_reason);
 }
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
 
-#if defined TIZEN_EXT
 static void disconnection_requested_changed(struct connman_service *service)
 {
        dbus_bool_t disconnection_requested;
@@ -3264,7 +3258,7 @@ static void strength_changed(struct connman_service *service)
                                        DBUS_TYPE_BYTE, &service->strength);
 }
 
-#if defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
 static bool update_last_connected_bssid(struct connman_service *service)
 {
        const unsigned char *last_connected_bssid;
@@ -4700,7 +4694,7 @@ static void append_properties(DBusMessageIter *dict, dbus_bool_t limited,
                connman_network_append_acddbus(dict, service->network);
 }
 
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
 static void append_ins_bssid_info(DBusMessageIter *iter, void *user_data)
 {
        GSList *bssid_list = NULL;
@@ -4791,7 +4785,7 @@ static void append_ins_properties(DBusMessageIter *dict,
                                append_ins_bssid_info, service->network);
        }
 }
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
 
 static void append_struct_service(DBusMessageIter *iter,
                connman_dbus_append_cb_t function,
@@ -4830,7 +4824,7 @@ static void append_struct(gpointer value, gpointer user_data)
        append_struct_service(iter, append_dict_properties, service);
 }
 
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
 static void append_dict_ins_properties(DBusMessageIter *dict, void *user_data)
 {
        struct connman_service *service = user_data;
@@ -4856,7 +4850,7 @@ void __connman_ins_list_struct(DBusMessageIter *iter)
 {
        g_list_foreach(service_list, append_ins_struct, iter);
 }
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
 
 void __connman_service_list_struct(DBusMessageIter *iter)
 {
@@ -5111,7 +5105,7 @@ const char *connman_service_get_proxy_url(struct connman_service *service)
        return service->pac;
 }
 
-#if defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
 void connman_service_set_internet_connection(struct connman_service *service,
                                                        bool internet_connection)
 {
@@ -5133,9 +5127,7 @@ bool connman_service_get_internet_connection(struct connman_service *service)
 
        return service->is_internet_connection;
 }
-#endif
 
-#if defined TIZEN_EXT
 DBusMessage *connman_service_create_dbus_service_reply(DBusMessage *msg,
                                                        struct connman_service *service)
 {
@@ -7956,12 +7948,10 @@ static void service_initialize(struct connman_service *service)
 
        service->wps = false;
        service->wps_advertizing = false;
-#if defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
        memset(service->last_connected_bssid, 0, WIFI_BSSID_LEN_MAX);
        service->is_internet_connection = false;
        service->assoc_reject_count = 0;
-#endif
-#if defined TIZEN_EXT
        service->disconnection_requested = false;
        service->storage_reload = false;
        /*
@@ -8061,7 +8051,7 @@ void connman_service_unref_debug(struct connman_service *service,
        g_hash_table_remove(service_hash, service->identifier);
 }
 
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
 static int calculate_score_last_user_selection(struct connman_service *service)
 {
        int score = 0;
@@ -8241,7 +8231,7 @@ static int calculate_score(struct connman_service *service)
        service->ins_score = score;
        return score;
 }
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
 
 static gint service_compare(gconstpointer a, gconstpointer b);
 
@@ -8283,13 +8273,13 @@ static gint service_compare(gconstpointer a, gconstpointer b)
        struct connman_service *service_b = (void *) b;
        enum connman_service_state state_a, state_b;
        bool a_connected, b_connected;
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
        int score_a;
        int score_b;
        gint strength = 0;
-#else /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#else /* defined TIZEN_EXT */
        gint strength;
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
 
        state_a = service_a->state;
        state_b = service_b->state;
@@ -8408,21 +8398,24 @@ static gint service_compare(gconstpointer a, gconstpointer b)
                        return 1;
        }
 
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
-       score_a = calculate_score(service_a);
-       score_b = calculate_score(service_b);
-       if (score_b != score_a)
-               return score_b - score_a;
-       else if (score_b == score_a) {
-               strength = (gint) service_b->strength - (gint) service_a->strength;
-               if (strength)
-                       return strength;
+#if defined TIZEN_EXT
+       if (TIZEN_INS_ENABLED) {
+               score_a = calculate_score(service_a);
+               score_b = calculate_score(service_b);
+
+               if (score_b != score_a)
+                       return score_b - score_a;
+               else if (score_b == score_a) {
+                       strength = (gint) service_b->strength - (gint) service_a->strength;
+                       if (strength)
+                               return strength;
+               }
        }
-#else /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#else /* defined TIZEN_EXT */
        strength = (gint) service_b->strength - (gint) service_a->strength;
        if (strength)
                return strength;
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
 
        return g_strcmp0(service_a->name, service_b->name);
 }
@@ -9423,8 +9416,8 @@ static int service_indicate_state(struct connman_service *service)
                        single_connected_tech(service);
 #endif
 
-#if defined TIZEN_EXT_INS
-               if (service->type == CONNMAN_SERVICE_TYPE_WIFI)
+#if defined TIZEN_EXT
+               if (TIZEN_INS_ENABLED && service->type == CONNMAN_SERVICE_TYPE_WIFI)
                        connman_service_set_internet_connection(service, true);
 #endif
                break;
@@ -10569,11 +10562,13 @@ static int service_register(struct connman_service *service)
 #if defined TIZEN_EXT
        int ret;
        service_load(service);
-#if defined TIZEN_EXT_INS
-       ret = service_ext_load(service);
-       if (ret == -ERANGE)
-               service_ext_save(service);
-#endif /* defined TIZEN_EXT_INS */
+
+       if (TIZEN_INS_ENABLED) {
+               ret = service_ext_load(service);
+               if (ret == -ERANGE)
+                       service_ext_save(service);
+       }
+
        ret = __connman_config_provision_service(service);
        if (ret < 0 && !simplified_log)
                DBG("Failed to provision service");
@@ -11223,9 +11218,6 @@ void __connman_service_update_from_network(struct connman_network *network)
        bool roaming;
        const char *name;
        bool stats_enable;
-#if defined TIZEN_EXT_INS
-       bool need_save = false;
-#endif
 
        service = connman_service_lookup_from_network(network);
        if (!service)
@@ -11282,13 +11274,18 @@ roaming:
        roaming_changed(service);
 
 sorting:
-#if defined TIZEN_EXT_INS
-       need_save |= update_last_connected_bssid(service);
-       need_save |= update_assoc_reject(service);
-       if (need_save) {
-               g_get_current_time((GTimeVal *)&service->modified);
-               service_ext_save(service);
-               need_sort = true;
+#if defined TIZEN_EXT
+       if (TIZEN_INS_ENABLED) {
+               bool need_save = false;
+
+               need_save |= update_last_connected_bssid(service);
+               need_save |= update_assoc_reject(service);
+
+               if (need_save) {
+                       g_get_current_time((GTimeVal *)&service->modified);
+                       service_ext_save(service);
+                       need_sort = true;
+               }
        }
 #endif
 
@@ -11474,7 +11471,7 @@ static struct connman_agent_driver agent_driver = {
        .context_unref  = agent_context_unref,
 };
 
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
 static void ins_setting_init(void)
 {
        int i;
@@ -11565,7 +11562,7 @@ static void ins_setting_init(void)
        DBG("signal_level3_5ghz [%d]", ins_settings.signal_level3_5ghz);
        DBG("signal_level3_24ghz [%d]", ins_settings.signal_level3_24ghz);
 }
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
 
 int __connman_service_init(void)
 {
@@ -11594,9 +11591,10 @@ int __connman_service_init(void)
 
        remove_unprovisioned_services();
 
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
-       ins_setting_init();
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#if defined TIZEN_EXT
+       if (TIZEN_INS_ENABLED)
+               ins_setting_init();
+#endif /* defined TIZEN_EXT */
 
        return 0;
 }
index fb6dc14..67f6036 100755 (executable)
@@ -35,9 +35,9 @@
 
 #define SETTINGS       "settings"
 #define DEFAULT                "default.profile"
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
 #define INS_SETTINGS   "settings.ins"
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
 
 #define MODE           (S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | \
                        S_IXGRP | S_IROTH | S_IXOTH)
@@ -133,7 +133,7 @@ int __connman_storage_save_global(GKeyFile *keyfile)
        return ret;
 }
 
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
 GKeyFile *__connman_storage_load_ins(void)
 {
        gchar *pathname;
@@ -165,7 +165,7 @@ int __connman_storage_save_ins(GKeyFile *keyfile)
 
        return ret;
 }
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
 
 void __connman_storage_delete_global(void)
 {
index 35bebac..dd9cb6c 100755 (executable)
@@ -425,8 +425,9 @@ static void wispr_portal_error(struct connman_wispr_portal_context *wp_context)
 
        wp_context->wispr_result = CONNMAN_WISPR_RESULT_FAILED;
 
-#if defined TIZEN_EXT_INS
-       connman_service_set_internet_connection(wp_context->service, false);
+#if defined TIZEN_EXT
+       if (TIZEN_INS_ENABLED)
+               connman_service_set_internet_connection(wp_context->service, false);
 #endif
 }