wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/src/core_operation_roam.cpp
changeset 17 41a8eba36f74
parent 13 ab7247ff6ef9
child 24 e717b8f55620
--- a/wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/src/core_operation_roam.cpp	Fri Apr 16 16:56:12 2010 +0300
+++ b/wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/src/core_operation_roam.cpp	Mon May 03 14:14:02 2010 +0300
@@ -16,7 +16,7 @@
 */
 
 /*
-* %version: 76 %
+* %version: 76.1.2 %
 */
 
 #include "core_operation_roam.h"
@@ -464,7 +464,6 @@
             {                        
             DEBUG( "core_operation_roam_c::next_state() - connection done" );
 
-            server_m->get_connection_data()->set_last_rcp_class( core_rcp_normal );
             server_m->get_connection_data()->set_ssid( ssid_m );
             server_m->get_core_settings().roam_metrics().set_roam_ts_userdata_enabled();
             server_m->get_core_settings().roam_metrics().inc_roam_success_count();
@@ -513,6 +512,21 @@
                     }
                 }
 
+            if ( server_m->get_connection_data()->last_rcp_class() != core_rcp_normal )
+                {
+                DEBUG( "core_operation_roam_c::next_state() - sending a notification about the normal signal level" );
+
+                u8_t buf[5];
+                buf[0] = static_cast<u8_t>( core_rcp_normal );
+                buf[1] = current_ap_m->rcpi();
+
+                adaptation_m->notify(
+                    core_notification_rcp_changed,
+                    sizeof( buf ),
+                    buf );
+                server_m->get_connection_data()->set_last_rcp_class( core_rcp_normal );
+                }
+
             if ( current_ap_m->is_wpx() )
                 {
                 server_m->get_wpx_adaptation_instance().handle_wpx_roam_success(
@@ -1209,7 +1223,7 @@
             is_security_association_available( *server_m->get_connection_data()->current_ap_data() ) )
             {
             DEBUG( "core_operation_roam_c::process_frame() - WPX fast-roam supported" );
-                
+
             entry->is_cached_sa_available = true_t;
             entry_score += CORE_ROAMING_LIST_BONUS_WPX_FAST_ROAM;
             }