@@ -233,22 +233,25 @@ bool ESP8266::startup(int mode)
233
233
234
234
bool ESP8266::reset (void )
235
235
{
236
+ bool done = false ;
237
+
236
238
_smutex.lock ();
237
239
set_timeout (ESP8266_CONNECT_TIMEOUT);
238
240
239
241
for (int i = 0 ; i < 2 ; i++) {
240
242
if (_parser.send (" AT+RST" )
241
243
&& _parser.recv (" OK\n " )
242
244
&& _parser.recv (" ready" )) {
243
- _clear_socket_packets (ESP8266_ALL_SOCKET_IDS);
244
- _smutex.unlock ();
245
- return true ;
245
+ done = true ;
246
+ break ;
246
247
}
247
248
}
249
+
250
+ _clear_socket_packets (ESP8266_ALL_SOCKET_IDS);
248
251
set_timeout ();
249
252
_smutex.unlock ();
250
253
251
- return false ;
254
+ return done ;
252
255
}
253
256
254
257
bool ESP8266::dhcp (bool enabled, int mode)
@@ -285,14 +288,14 @@ bool ESP8266::cond_enable_tcp_passive_mode()
285
288
286
289
nsapi_error_t ESP8266::connect (const char *ap, const char *passPhrase)
287
290
{
291
+ nsapi_error_t ret = NSAPI_ERROR_OK;
292
+
288
293
_smutex.lock ();
289
294
set_timeout (ESP8266_CONNECT_TIMEOUT);
290
295
291
296
_parser.send (" AT+CWJAP_CUR=\" %s\" ,\" %s\" " , ap, passPhrase);
292
297
if (!_parser.recv (" OK\n " )) {
293
298
if (_fail) {
294
- _smutex.unlock ();
295
- nsapi_error_t ret;
296
299
if (_connect_error == 1 ) {
297
300
ret = NSAPI_ERROR_CONNECTION_TIMEOUT;
298
301
} else if (_connect_error == 2 ) {
@@ -302,16 +305,15 @@ nsapi_error_t ESP8266::connect(const char *ap, const char *passPhrase)
302
305
} else {
303
306
ret = NSAPI_ERROR_NO_CONNECTION;
304
307
}
305
-
306
308
_fail = false ;
307
309
_connect_error = 0 ;
308
- return ret;
309
310
}
310
311
}
312
+
311
313
set_timeout ();
312
314
_smutex.unlock ();
313
315
314
- return NSAPI_ERROR_OK ;
316
+ return ret ;
315
317
}
316
318
317
319
bool ESP8266::disconnect (void )
0 commit comments