wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/src/core_operation_handle_bss_lost.cpp
--- a/wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/src/core_operation_handle_bss_lost.cpp Tue Aug 31 17:02:06 2010 +0300
+++ b/wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/src/core_operation_handle_bss_lost.cpp Wed Sep 01 12:41:05 2010 +0100
@@ -16,7 +16,7 @@
*/
/*
-* %version: 34 %
+* %version: 33 %
*/
#include "core_operation_handle_bss_lost.h"
@@ -151,6 +151,34 @@
}
/**
+ * If the connection is lost when EAPOL is doing (re-)authentication,
+ * EAPOL must be notified.
+ */
+ if ( server_m->get_connection_data()->is_eapol_authenticating() &&
+ ( server_m->get_connection_data()->iap_data().is_eap_used() ||
+ server_m->get_connection_data()->iap_data().is_wapi_used() ) )
+ {
+ network_id_c network_id(
+ &bssid.addr[0],
+ MAC_ADDR_LEN,
+ &server_m->own_mac_addr().addr[0],
+ MAC_ADDR_LEN,
+ server_m->get_eapol_instance().ethernet_type() );
+
+ DEBUG( "core_operation_handle_bss_lost_c::next_state() - marking is_eapol_authenticating as false" );
+ server_m->get_connection_data()->set_eapol_authenticating(
+ false_t );
+
+ DEBUG6( "core_operation_handle_bss_lost_c::next_state() - EAPOL disassociation from BSSID %02X:%02X:%02X:%02X:%02X:%02X",
+ bssid.addr[0], bssid.addr[1], bssid.addr[2],
+ bssid.addr[3], bssid.addr[4], bssid.addr[5] );
+
+ server_m->get_eapol_instance().disassociation( &network_id );
+ }
+
+ operation_state_m = core_state_set_tx_level;
+
+ /**
* Check the channels that were previously reported to be active.
*/
server_m->get_scan_list().get_channels_by_ssid(
@@ -173,47 +201,6 @@
server_m->get_scan_list().remove_entries_by_bssid(
bssid );
- /**
- * If the connection is lost when EAPOL is doing (re-)authentication,
- * EAPOL must be notified.
- */
- if ( ( server_m->get_connection_data()->is_eapol_authenticating() ||
- reason_m == core_bss_lost_reason_failed_reauthentication ) &&
- ( server_m->get_connection_data()->iap_data().is_eap_used() ||
- server_m->get_connection_data()->iap_data().is_wapi_used() ) )
- {
- network_id_c network_id(
- &bssid.addr[0],
- MAC_ADDR_LEN,
- &server_m->own_mac_addr().addr[0],
- MAC_ADDR_LEN,
- server_m->get_eapol_instance().ethernet_type() );
-
- DEBUG( "core_operation_handle_bss_lost_c::next_state() - marking is_eapol_authenticating as false" );
- server_m->get_connection_data()->set_eapol_authenticating(
- false_t );
-
- DEBUG6( "core_operation_handle_bss_lost_c::next_state() - EAPOL disassociation from BSSID %02X:%02X:%02X:%02X:%02X:%02X",
- bssid.addr[0], bssid.addr[1], bssid.addr[2],
- bssid.addr[3], bssid.addr[4], bssid.addr[5] );
- DEBUG( "core_operation_handle_bss_lost_c::next_state() - marking is_eapol_disconnecting as true" );
- server_m->get_connection_data()->set_eapol_disconnecting(
- true );
- server_m->get_connection_data()->set_eapol_auth_failure(
- core_error_eapol_failure );
-
- server_m->get_eapol_instance().disassociation( &network_id );
- operation_state_m = core_state_eapol_disassociated;
-
- return core_error_request_pending;
- }
-
- return goto_state( core_state_eapol_disassociated );
- }
- case core_state_eapol_disassociated:
- {
- operation_state_m = core_state_set_tx_level;
-
server_m->get_core_settings().roam_metrics().set_roam_ts_userdata_disabled();
drivers_m->disable_user_data(