static struct connman_technology *wifi_technology = NULL;
static struct connman_technology *p2p_technology = NULL;
+#if defined TIZEN_EXT
+static GSupplicantState assoc_last_state = G_SUPPLICANT_STATE_UNKNOWN;
+#endif
+
enum wifi_ap_capability{
WIFI_AP_UNKNOWN = 0,
WIFI_AP_SUPPORTED = 1,
return false;
}
+ if (wifi->state > assoc_last_state)
+ assoc_last_state = wifi->state;
+
if (++wifi->assoc_retry_count >= TIZEN_ASSOC_RETRY_COUNT) {
wifi->assoc_retry_count = 0;
* however QA team recommends that the invalid-key error
* might be better to display for user experience.
*/
- switch (wifi->state) {
+ switch (assoc_last_state) {
case G_SUPPLICANT_STATE_AUTHENTICATING:
connman_network_set_error(network, CONNMAN_NETWORK_ERROR_AUTHENTICATE_FAIL);
break;
}
#if defined TIZEN_EXT
+ if (wifi->assoc_retry_count == 0)
+ assoc_last_state = G_SUPPLICANT_STATE_UNKNOWN;
+
/* Some of Wi-Fi networks are not comply Wi-Fi specification.
* Retry association until its retry count is expired */
if (handle_wifi_assoc_retry(network, wifi) == true) {
if (!service)
return;
+ if (connman_service_get_favorite(service)) {
+ __connman_service_set_ignore(service, true);
+ }
+
__connman_service_indicate_error(service,
CONNMAN_SERVICE_ERROR_AUTH_FAILED);
}