wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/src/core_operation_connect.cpp
branchRCL_3
changeset 6 e0f767079796
parent 0 c40eb8fe8501
--- a/wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/src/core_operation_connect.cpp	Fri Mar 12 15:51:11 2010 +0200
+++ b/wlan_bearer/wlanengine/wlan_common/wlanengine_common_3.1/src/core_operation_connect.cpp	Mon Mar 15 12:46:48 2010 +0200
@@ -16,7 +16,7 @@
 */
 
 /*
-* %version: 40 %
+* %version: 41 %
 */
 
 #include "genscaninfo.h"
@@ -97,33 +97,36 @@
             if( ret != core_error_ok )
                 {
                 DEBUG1( "core_operation_connect_c::next_state() - unable to initialize connection data (%d)", ret );
-                
+
                 return ret;
                 }
 
+            if( !server_m->get_connection_data()->iap_data().is_valid() )
+                {
+                DEBUG( "core_operation_connect_c::next_state() - invalid connection settings" );
+
+                server_m->clear_connection_data();
+
+                return core_error_illegal_argument;
+                }
+
             if( server_m->get_connection_data()->iap_data().is_eap_used() &&
                 !server_m->create_eapol_instance( core_eapol_operating_mode_wfa ) )
                 {
                 DEBUG( "core_operation_connect_c::next_state() - unable to instantiate EAPOL (WFA)" );
 
-                return core_error_no_memory;               
+                server_m->clear_connection_data();
+
+                return core_error_no_memory;
                 }
             else if( server_m->get_connection_data()->iap_data().is_wapi_used() &&
                      !server_m->create_eapol_instance( core_eapol_operating_mode_wapi ) )
                 {
                 DEBUG( "core_operation_connect_c::next_state() - unable to instantiate EAPOL (WAPI)" );
 
-                return core_error_no_memory;               
-                }
-            
-            if( server_m->get_connection_data()->iap_data().operating_mode() == core_operating_mode_ibss &&
-                ( server_m->get_connection_data()->iap_data().security_mode() != core_security_mode_allow_unsecure && 
-                  server_m->get_connection_data()->iap_data().security_mode() != core_security_mode_wep ) )
-                {
-                DEBUG1( "core_operation_connect_c::next_state() - ad-hoc with security mode %d not supported",
-                        server_m->get_connection_data()->iap_data().security_mode() );
+                server_m->clear_connection_data();
 
-                return core_error_not_supported;
+                return core_error_no_memory;
                 }
 
             server_m->get_core_settings().clear_connection_statistics();