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 |