wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/src/core_operation_release.cpp
changeset 24 e717b8f55620
parent 0 c40eb8fe8501
child 43 d3d7683d16f5
--- a/wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/src/core_operation_release.cpp	Tue May 25 15:11:14 2010 +0300
+++ b/wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/src/core_operation_release.cpp	Tue May 25 16:07:06 2010 +0300
@@ -16,7 +16,7 @@
 */
 
 /*
-* %version: 17 %
+* %version: 18 %
 */
 
 #include "core_operation_release.h"
@@ -175,10 +175,21 @@
                 DEBUG6( "core_operation_release_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_release_c::next_state() - marking is_eapol_disconnecting as true" );
+                server_m->get_connection_data()->set_eapol_disconnecting(
+                    true );
 
                 server_m->get_eapol_instance().disassociation( &network );
+                operation_state_m = core_state_eapol_disassociated;
+
+                return core_error_request_pending;
                 }
 
+            return goto_state( core_state_eapol_disassociated );
+            }
+        case core_state_eapol_disassociated:
+            {
+            DEBUG( "core_operation_release_c::next_state() - core_state_eapol_disassociated" );
             // disable user data
             drivers_m->disable_user_data( request_id_m );
             operation_state_m = core_state_disable_user_data;