diff options
author | Niraj Kumar Goit <niraj.g@samsung.com> | 2019-03-29 16:05:49 +0530 |
---|---|---|
committer | Niraj Kumar Goit <niraj.g@samsung.com> | 2019-04-05 12:56:09 +0530 |
commit | 69efc565b595bb39ebdbe635f063675ecf59278c (patch) | |
tree | 33c51a4e1d04ba61a143033e32afda67cd93cf83 /gsupplicant | |
parent | 85074ce75ce1749e270dc9951d003d4a3c1f9cab (diff) | |
download | connman-69efc565b595bb39ebdbe635f063675ecf59278c.tar.gz connman-69efc565b595bb39ebdbe635f063675ecf59278c.tar.bz2 connman-69efc565b595bb39ebdbe635f063675ecf59278c.zip |
Added support of Multiple same SSIDs including band steering.submit/tizen/20190409.131053accepted/tizen/unified/20190410.061801
When there are multiple APs with the same SSID and security,
this patch support below features:
1. If AP does not respond to probe request during connection
procedure, connman tries to connect with the next available BSSID
before sending disconnected event to application.
2. If connection with AP is failed during association due to
ASSOC_REJECT, connman tries to connect with the next available BSSID
before sending disconnected event to application.
Change-Id: Ie80939bd013a12b9c88e91a1fd5a05fbb57c1833
Signed-off-by: Niraj Kumar Goit <niraj.g@samsung.com>
Diffstat (limited to 'gsupplicant')
-rw-r--r-- | gsupplicant/supplicant.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c index 67d4d608..1c0e6419 100644 --- a/gsupplicant/supplicant.c +++ b/gsupplicant/supplicant.c @@ -50,6 +50,7 @@ #define WLAN_EID_SUPP_RATES 1 #define WLAN_EID_EXT_SUPP_RATES 50 #define COUNTRY_CODE_LENGTH 2 +#define WIFI_BSSID_LEN_MAX 6 #endif #define BSS_UNKNOWN_STRENGTH -90 @@ -364,7 +365,7 @@ struct interface_scan_data { #if defined TIZEN_EXT struct g_connman_bssids { - char bssid[18]; + unsigned char bssid[WIFI_BSSID_LEN_MAX]; uint16_t strength; uint16_t frequency; }; @@ -1723,18 +1724,13 @@ static void update_bssid_list(gpointer key, gpointer value, gpointer user_data) { struct g_supplicant_bss *bss = value; struct g_connman_bssids *bssids = NULL; - char buff[18]; GSList **list = (GSList **)user_data; bssids = (struct g_connman_bssids *)g_try_malloc0(sizeof(struct g_connman_bssids)); if (bssids) { - g_snprintf(buff, 18, "%02x:%02x:%02x:%02x:%02x:%02x", - bss->bssid[0], bss->bssid[1], bss->bssid[2], bss->bssid[3], - bss->bssid[4], bss->bssid[5]); + memcpy(bssids->bssid, bss->bssid, WIFI_BSSID_LEN_MAX); - memcpy(bssids->bssid, buff, 18); - bssids->bssid[17] = '\0'; bssids->strength = bss->signal; bssids->strength += 120; @@ -2816,7 +2812,11 @@ static void interface_bss_removed(DBusMessageIter *iter, void *user_data) g_hash_table_remove(interface->network_table, network->group); } else { if (is_current_network_bss && network->best_bss) +#if defined TIZEN_EXT + callback_network_changed(network, "CheckMultiBssidConnect"); +#else callback_network_changed(network, ""); +#endif } } |