wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/src/core_operation_connect.cpp
branchRCL_3
changeset 6 e0f767079796
parent 0 c40eb8fe8501
equal deleted inserted replaced
5:51a71243e562 6:e0f767079796
    14 * Description:  Statemachine for connecting to a network
    14 * Description:  Statemachine for connecting to a network
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 /*
    18 /*
    19 * %version: 40 %
    19 * %version: 41 %
    20 */
    20 */
    21 
    21 
    22 #include "genscaninfo.h"
    22 #include "genscaninfo.h"
    23 #include "core_operation_connect.h"
    23 #include "core_operation_connect.h"
    24 #include "core_sub_operation_set_static_wep.h"
    24 #include "core_sub_operation_set_static_wep.h"
    95                 settings_m,
    95                 settings_m,
    96                 server_m->get_device_settings() );
    96                 server_m->get_device_settings() );
    97             if( ret != core_error_ok )
    97             if( ret != core_error_ok )
    98                 {
    98                 {
    99                 DEBUG1( "core_operation_connect_c::next_state() - unable to initialize connection data (%d)", ret );
    99                 DEBUG1( "core_operation_connect_c::next_state() - unable to initialize connection data (%d)", ret );
   100                 
   100 
   101                 return ret;
   101                 return ret;
       
   102                 }
       
   103 
       
   104             if( !server_m->get_connection_data()->iap_data().is_valid() )
       
   105                 {
       
   106                 DEBUG( "core_operation_connect_c::next_state() - invalid connection settings" );
       
   107 
       
   108                 server_m->clear_connection_data();
       
   109 
       
   110                 return core_error_illegal_argument;
   102                 }
   111                 }
   103 
   112 
   104             if( server_m->get_connection_data()->iap_data().is_eap_used() &&
   113             if( server_m->get_connection_data()->iap_data().is_eap_used() &&
   105                 !server_m->create_eapol_instance( core_eapol_operating_mode_wfa ) )
   114                 !server_m->create_eapol_instance( core_eapol_operating_mode_wfa ) )
   106                 {
   115                 {
   107                 DEBUG( "core_operation_connect_c::next_state() - unable to instantiate EAPOL (WFA)" );
   116                 DEBUG( "core_operation_connect_c::next_state() - unable to instantiate EAPOL (WFA)" );
   108 
   117 
   109                 return core_error_no_memory;               
   118                 server_m->clear_connection_data();
       
   119 
       
   120                 return core_error_no_memory;
   110                 }
   121                 }
   111             else if( server_m->get_connection_data()->iap_data().is_wapi_used() &&
   122             else if( server_m->get_connection_data()->iap_data().is_wapi_used() &&
   112                      !server_m->create_eapol_instance( core_eapol_operating_mode_wapi ) )
   123                      !server_m->create_eapol_instance( core_eapol_operating_mode_wapi ) )
   113                 {
   124                 {
   114                 DEBUG( "core_operation_connect_c::next_state() - unable to instantiate EAPOL (WAPI)" );
   125                 DEBUG( "core_operation_connect_c::next_state() - unable to instantiate EAPOL (WAPI)" );
   115 
   126 
   116                 return core_error_no_memory;               
   127                 server_m->clear_connection_data();
   117                 }
   128 
   118             
   129                 return core_error_no_memory;
   119             if( server_m->get_connection_data()->iap_data().operating_mode() == core_operating_mode_ibss &&
       
   120                 ( server_m->get_connection_data()->iap_data().security_mode() != core_security_mode_allow_unsecure && 
       
   121                   server_m->get_connection_data()->iap_data().security_mode() != core_security_mode_wep ) )
       
   122                 {
       
   123                 DEBUG1( "core_operation_connect_c::next_state() - ad-hoc with security mode %d not supported",
       
   124                         server_m->get_connection_data()->iap_data().security_mode() );
       
   125 
       
   126                 return core_error_not_supported;
       
   127                 }
   130                 }
   128 
   131 
   129             server_m->get_core_settings().clear_connection_statistics();
   132             server_m->get_core_settings().clear_connection_statistics();
   130             server_m->get_core_settings().roam_metrics().set_roam_ts_userdata_disabled();
   133             server_m->get_core_settings().roam_metrics().set_roam_ts_userdata_disabled();
   131 
   134