Skip to content

Commit fef4ea4

Browse files
committed
Test for non-empty SSID before connecting
In the WiFi code, test that SSID is a non-empty string before trying to connect. Disconnect any existing wifi connection and pause long enough for it to take before going ahead. Indentations unchanged in this commit just so it is obvious that the connection code is unchanged.
1 parent bce49c3 commit fef4ea4

File tree

6 files changed

+31
-0
lines changed

6 files changed

+31
-0
lines changed

src/wifi/AdafruitIO_AIRLIFT.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,10 @@ class AdafruitIO_AIRLIFT : public AdafruitIO {
158158
/**************************************************************************/
159159
void _connect()
160160
{
161+
if(strlen(_ssid) != 0)
162+
{
163+
WiFi.disconnect();
164+
delay(300);
161165
// setup ESP32 pins
162166
if (_ssPin != -1) {
163167
WiFi.setPins(_ssPin, _ackPin, _rstPin, _gpio0Pin, _wifi);
@@ -175,6 +179,7 @@ class AdafruitIO_AIRLIFT : public AdafruitIO {
175179

176180
WiFi.begin(_ssid, _pass);
177181
_status = AIO_NET_DISCONNECTED;
182+
}
178183
}
179184
};
180185

src/wifi/AdafruitIO_ESP32.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,16 @@ AdafruitIO_ESP32::~AdafruitIO_ESP32()
3232

3333
void AdafruitIO_ESP32::_connect()
3434
{
35+
if(strlen(_ssid) != 0)
36+
{
37+
WiFi.disconnect();
38+
delay(300);
3539

3640
delay(100);
3741
WiFi.begin(_ssid, _pass);
3842
delay(100);
3943
_status = AIO_NET_DISCONNECTED;
44+
}
4045

4146
}
4247

src/wifi/AdafruitIO_ESP8266.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,16 @@ AdafruitIO_ESP8266::~AdafruitIO_ESP8266()
3333

3434
void AdafruitIO_ESP8266::_connect()
3535
{
36+
if(strlen(_ssid) != 0)
37+
{
38+
WiFi.disconnect();
39+
delay(300);
3640

3741
delay(100);
3842
WiFi.begin(_ssid, _pass);
3943
delay(100);
4044
_status = AIO_NET_DISCONNECTED;
45+
}
4146

4247
}
4348

src/wifi/AdafruitIO_MKR1000.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,18 @@ AdafruitIO_MKR1000::~AdafruitIO_MKR1000()
3232

3333
void AdafruitIO_MKR1000::_connect()
3434
{
35+
if(strlen(_ssid) != 0)
36+
{
37+
WiFi.disconnect();
38+
delay(300);
3539

3640
// no shield? bail
3741
if(WiFi.status() == WL_NO_SHIELD)
3842
return;
3943

4044
WiFi.begin(_ssid, _pass);
4145
_status = AIO_NET_DISCONNECTED;
46+
}
4247

4348
}
4449

src/wifi/AdafruitIO_WICED.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,14 @@ AdafruitIO_WICED::~AdafruitIO_WICED()
3232

3333
void AdafruitIO_WICED::_connect()
3434
{
35+
if(strlen(_ssid) != 0)
36+
{
37+
Feather.disconnect();
38+
delay(300);
39+
3540
Feather.connect(_ssid, _pass);
3641
_status = AIO_NET_DISCONNECTED;
42+
}
3743
}
3844

3945
aio_status_t AdafruitIO_WICED::networkStatus()

src/wifi/AdafruitIO_WINC1500.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,10 @@ class AdafruitIO_WINC1500 : public AdafruitIO {
8080

8181
void _connect()
8282
{
83+
if(strlen(_ssid) != 0)
84+
{
85+
WiFi.disconnect();
86+
delay(300);
8387
WiFi.setPins(_winc_cs, _winc_irq, _winc_rst, _winc_en);
8488

8589
// no shield? bail
@@ -90,6 +94,7 @@ class AdafruitIO_WINC1500 : public AdafruitIO {
9094

9195
WiFi.begin(_ssid, _pass);
9296
_status = AIO_NET_DISCONNECTED;
97+
}
9398
}
9499
};
95100

0 commit comments

Comments
 (0)