Support roaming from WPA2 to WPA3
[platform/upstream/connman.git] / src / service.c
index a27dcca..dbd36f3 100755 (executable)
@@ -86,9 +86,7 @@ struct saved_profiles {
 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 +112,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,22 +234,19 @@ 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;
        unsigned char last_connected_bssid[WIFI_BSSID_LEN_MAX];
        bool is_internet_connection;
        int assoc_reject_count;
-#if defined TIZEN_EXT_INS
        int score_last_user_selection;
        int score_last_connected;
        int score_frequency;
        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
@@ -878,10 +873,10 @@ static bool update_assoc_reject(struct connman_service *service)
        if (assoc_reject_table) {
                assoc_reject_count = 0;
                g_hash_table_foreach(assoc_reject_table, count_assoc_reject, &assoc_reject_count);
-#if defined TIZEN_EXT_INS
+
                DBG("assoc reject count [%d -> %d]",
                        service->assoc_reject_count, assoc_reject_count);
-#endif
+
                if (service->assoc_reject_count != assoc_reject_count) {
                        service->assoc_reject_count = assoc_reject_count;
                        return true;
@@ -968,9 +963,7 @@ static int service_ext_load(struct connman_service *service)
                reject_data->reject_time_list = g_slist_append(reject_data->reject_time_list,
                                GINT_TO_POINTER(reject_time));
 
-#if defined TIZEN_EXT_INS
                DBG("assoc reject [%s_%ld]", bssid, reject_time);
-#endif
 
                g_strfreev(bssid_time);
        }
@@ -1002,9 +995,6 @@ static int service_ext_save(struct connman_service *service)
        keyfile = connman_storage_load_service(service->identifier);
 
        if (!keyfile)
-               keyfile = g_key_file_new();
-
-       if (!keyfile)
                return -EIO;
 
        /* Last connected BSSID */
@@ -1029,9 +1019,7 @@ static int service_ext_save(struct connman_service *service)
                g_key_file_set_string(keyfile, identifier,
                                        "LastConnectedBSSID", bssid_str->str);
 
-#if defined TIZEN_EXT_INS
                DBG("last connected bssid[%s]", bssid_str->str);
-#endif
 
                g_string_free(bssid_str, TRUE);
        }
@@ -1055,9 +1043,7 @@ next:
                g_key_file_set_string_list(keyfile, service->identifier,
                        "AssocReject", (const gchar **)reject_list, reject_len);
 
-#if defined TIZEN_EXT_INS
                DBG("assoc reject table [%d]", reject_len);
-#endif
 
                g_strfreev(reject_list);
                g_string_free(reject_str, TRUE);
@@ -1071,7 +1057,7 @@ done:
        g_key_file_free(keyfile);
        return err;
 }
-#endif
+#endif /* defined TIZEN_EXT */
 
 static int service_load(struct connman_service *service)
 {
@@ -1173,44 +1159,46 @@ static int service_load(struct connman_service *service)
                }
 
 #if defined TIZEN_EXT
-               /* 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 (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
+                       g_clear_error(&error);
+               }
+#endif /* defined TIZEN_EXT */
                /* fall through */
 
        case CONNMAN_SERVICE_TYPE_GADGET:
@@ -1520,72 +1508,69 @@ static int service_save(struct connman_service *service)
                                                "Frequency", freq);
 
 #if defined TIZEN_EXT
-                       /* 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 (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);
 
-#if defined TIZEN_EXT_INS
-                               DBG("last connected bssid[%s]", bssid_str->str);
-#endif
+                                       DBG("last connected bssid[%s]", bssid_str->str);
 
-                               g_string_free(bssid_str, TRUE);
-                       }
+                                       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 */
+                               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;
-                               }
+                                       assoc_reject_str = g_string_new(NULL);
+                                       if (!assoc_reject_str) {
+                                               err = -ENOMEM;
+                                               goto done;
+                                       }
 
-                               g_hash_table_foreach(assoc_reject_table, save_assoc_reject, assoc_reject_str);
+                                       g_hash_table_foreach(assoc_reject_table, save_assoc_reject, assoc_reject_str);
 
-                               assoc_reject_list = g_strsplit_set(assoc_reject_str->str, " ", 0);
-                               assoc_reject_len = g_strv_length(assoc_reject_list);
+                                       assoc_reject_list = g_strsplit_set(assoc_reject_str->str, " ", 0);
+                                       assoc_reject_len = g_strv_length(assoc_reject_list);
 
-                               g_key_file_set_string_list(keyfile, service->identifier,
-                                       "AssocReject", (const gchar **)assoc_reject_list, assoc_reject_len);
+                                       g_key_file_set_string_list(keyfile, service->identifier,
+                                                       "AssocReject", (const gchar **)assoc_reject_list, assoc_reject_len);
 
-#if defined TIZEN_EXT_INS
-                               DBG("assoc reject table [%d]", assoc_reject_len);
-#endif
+                                       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);
+                                       g_strfreev(assoc_reject_list);
+                                       g_string_free(assoc_reject_str, TRUE);
+                               } else
+                                       g_key_file_remove_key(keyfile, service->identifier, "AssocReject", NULL);
 
-                       /* Internet connection */
-                       g_key_file_set_boolean(keyfile, service->identifier,
-                                       "InternetConnection", service->is_internet_connection);
-#if defined TIZEN_EXT_INS
-                       DBG("internet connection [%s]", service->is_internet_connection ? "true" : "false");
-#endif
-#endif
+                               /* Internet connection */
+                               g_key_file_set_boolean(keyfile, service->identifier,
+                                               "InternetConnection", service->is_internet_connection);
+
+                               DBG("internet connection [%s]", service->is_internet_connection ? "true" : "false");
+                       }
+#endif /* defined TIZEN_EXT */
                }
                /* fall through */
 
@@ -3167,33 +3152,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,
@@ -3201,9 +3185,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;
@@ -3257,7 +3239,7 @@ static void connman_service_emit_state(struct connman_service *service,
        service->state = cur_state;
 }
 
-void connman_service_notify_reconnection(struct connman_service *service)
+void connman_service_notify_reconnection_roaming(struct connman_service *service)
 {
        if (!service)
                return;
@@ -4723,7 +4705,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;
@@ -4814,7 +4796,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,
@@ -4853,7 +4835,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;
@@ -4879,7 +4861,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)
 {
@@ -7965,7 +7947,6 @@ static void service_initialize(struct connman_service *service)
        memset(service->last_connected_bssid, 0, WIFI_BSSID_LEN_MAX);
        service->is_internet_connection = false;
        service->assoc_reject_count = 0;
-
        service->disconnection_requested = false;
        service->storage_reload = false;
        /*
@@ -8065,7 +8046,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;
@@ -8131,16 +8112,14 @@ static int calculate_score_last_connected(struct connman_service *service)
        frequency = connman_network_get_frequency(service->network);
 
        if (ins_settings.last_connected) {
-               if (ins_settings.last_connected) {
-                       if (g_strcmp0(last_connected_ident, service->identifier) == 0 &&
-                                       (((frequency >= FREQ_RANGE_24GHZ_CHANNEL_1 &&
-                                       frequency <= FREQ_RANGE_24GHZ_CHANNEL_14) &&
-                                       service->strength >= ins_settings.signal_level3_24ghz) ||
-                                       ((frequency >= FREQ_RANGE_5GHZ_CHANNEL_32 &&
-                                       frequency <= FREQ_RANGE_5GHZ_CHANNEL_165) &&
-                                       service->strength >= ins_settings.signal_level3_5ghz))) {
-                               score += ins_settings.last_connected_score;
-                       }
+               if (g_strcmp0(last_connected_ident, service->identifier) == 0 &&
+                               (((frequency >= FREQ_RANGE_24GHZ_CHANNEL_1 &&
+                               frequency <= FREQ_RANGE_24GHZ_CHANNEL_14) &&
+                               service->strength >= ins_settings.signal_level3_24ghz) ||
+                               ((frequency >= FREQ_RANGE_5GHZ_CHANNEL_32 &&
+                               frequency <= FREQ_RANGE_5GHZ_CHANNEL_165) &&
+                               service->strength >= ins_settings.signal_level3_5ghz))) {
+                       score += ins_settings.last_connected_score;
                }
        }
 
@@ -8245,7 +8224,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);
 
@@ -8306,13 +8285,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;
@@ -8426,21 +8405,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);
 }
@@ -9443,7 +9425,7 @@ static int service_indicate_state(struct connman_service *service)
 #endif
 
 #if defined TIZEN_EXT
-               if (service->type == CONNMAN_SERVICE_TYPE_WIFI)
+               if (TIZEN_INS_ENABLED && service->type == CONNMAN_SERVICE_TYPE_WIFI)
                        connman_service_set_internet_connection(service, true);
 #endif
                break;
@@ -10580,6 +10562,63 @@ static struct connman_service *service_get(const char *identifier)
        return service;
 }
 
+#if defined TIZEN_EXT
+static void service_load_wpa_passphrase(struct connman_service *service)
+{
+       char *identifier;
+       char *ptr;
+       GKeyFile *keyfile;
+       bool favorite;
+       bool autoconnect;
+       char *passphrase;
+
+       if (service->security != CONNMAN_SERVICE_SECURITY_SAE)
+               return;
+
+       if (service->passphrase)
+               return;
+
+       if (!service->identifier)
+               return;
+
+       identifier = g_strdup(service->identifier);
+       if (!identifier)
+               return;
+
+       ptr = strstr(identifier, "_sae");
+       if (!ptr) {
+               g_free(identifier);
+               return;
+       }
+
+       memcpy(ptr, "_psk", strlen("_psk"));
+
+       keyfile = connman_storage_load_service(identifier);
+       if (!keyfile) {
+               g_free(identifier);
+               return;
+       }
+
+       favorite = g_key_file_get_boolean(keyfile, identifier, "Favorite", NULL);
+       autoconnect = g_key_file_get_boolean(keyfile, identifier, "AutoConnect", NULL);
+
+       if (!favorite || !autoconnect) {
+               g_free(identifier);
+               return;
+       }
+
+       passphrase = g_key_file_get_string(keyfile, identifier, "Passphrase", NULL);
+       if (passphrase) {
+               service->passphrase = g_strdup(passphrase);
+               service->favorite = favorite;
+               service->autoconnect = autoconnect;
+       }
+
+       g_free(identifier);
+       g_free(passphrase);
+}
+#endif
+
 static int service_register(struct connman_service *service)
 {
 #if defined TIZEN_EXT
@@ -10598,16 +10637,21 @@ static int service_register(struct connman_service *service)
 #if defined TIZEN_EXT
        int ret;
        service_load(service);
-       ret = service_ext_load(service);
-       if (ret == -ERANGE)
-               service_ext_save(service);
+       service_load_wpa_passphrase(service);
+
+       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");
 #else
        if (__connman_config_provision_service(service) < 0)
                service_load(service);
-#endif
+#endif /* defined TIZEN_EXT */
 
        g_dbus_register_interface(connection, service->path,
                                        CONNMAN_SERVICE_INTERFACE,
@@ -11263,9 +11307,6 @@ void __connman_service_update_from_network(struct connman_network *network)
        bool roaming;
        const char *name;
        bool stats_enable;
-#if defined TIZEN_EXT
-       bool need_save = false;
-#endif
 
        service = connman_service_lookup_from_network(network);
        if (!service)
@@ -11323,12 +11364,17 @@ roaming:
 
 sorting:
 #if defined TIZEN_EXT
-       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 (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
 
@@ -11514,7 +11560,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;
@@ -11577,7 +11623,7 @@ static void ins_setting_init(void)
         * So the value for comparison should also be converted to the same.
         */
        ins_settings.signal_level3_5ghz = connman_setting_get_int("INSSignalLevel3_5GHz") + 120;
-       ins_settings.signal_level3_24ghz = connman_setting_get_int("INSSignalLevel3_24GHz") + 120;
+       ins_settings.signal_level3_24ghz = connman_setting_get_int("INSSignalLevel3_2_4GHz") + 120;
 
        DBG("last_user_selection [%s]", ins_settings.last_user_selection ? "true" : "false");
        DBG("last_user_selection_time [%d]", ins_settings.last_user_selection_time);
@@ -11605,7 +11651,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)
 {
@@ -11636,9 +11682,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;
 }