Skip to content

Commit f60b385

Browse files
committed
Added WiFiClient::setConnectTimeout
1 parent 9cd2d7e commit f60b385

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

src/WiFiClient.cpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ extern "C" {
3535

3636
uint16_t WiFiClient::_srcport = 1024;
3737

38-
WiFiClient::WiFiClient() : _sock(NO_SOCKET_AVAIL) {
38+
WiFiClient::WiFiClient() : _sock(NO_SOCKET_AVAIL), _connect_timeout(10000) {
3939
}
4040

41-
WiFiClient::WiFiClient(uint8_t sock) : _sock(sock) {
41+
WiFiClient::WiFiClient(uint8_t sock) : _sock(sock), _connect_timeout(10000) {
4242
}
4343

4444
int WiFiClient::connect(const char* host, uint16_t port) {
@@ -63,8 +63,7 @@ int WiFiClient::connect(IPAddress ip, uint16_t port) {
6363

6464
unsigned long start = millis();
6565

66-
// wait 4 second for the connection to close
67-
while (!connected() && millis() - start < 10000)
66+
while (!connected() && millis() - start < _connect_timeout)
6867
delay(1);
6968

7069
if (!connected())
@@ -92,8 +91,7 @@ int WiFiClient::connectSSL(IPAddress ip, uint16_t port)
9291

9392
unsigned long start = millis();
9493

95-
// wait 4 second for the connection to close
96-
while (!connected() && millis() - start < 10000)
94+
while (!connected() && millis() - start < _connect_timeout)
9795
delay(1);
9896

9997
if (!connected())
@@ -121,8 +119,7 @@ int WiFiClient::connectSSL(const char *host, uint16_t port)
121119

122120
unsigned long start = millis();
123121

124-
// wait 4 second for the connection to close
125-
while (!connected() && millis() - start < 10000)
122+
while (!connected() && millis() - start < _connect_timeout)
126123
delay(1);
127124

128125
if (!connected())
@@ -272,3 +269,8 @@ uint16_t WiFiClient::remotePort()
272269
uint16_t port = (_remotePort[0]<<8)+_remotePort[1];
273270
return port;
274271
}
272+
273+
void WiFiClient::setConnectTimeout(unsigned long timeout)
274+
{
275+
_connect_timeout = timeout;
276+
}

src/WiFiClient.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ class WiFiClient : public Client {
5050
virtual IPAddress remoteIP();
5151
virtual uint16_t remotePort();
5252

53+
virtual void setConnectTimeout(unsigned long timeout);
54+
5355
friend class WiFiServer;
5456
friend class WiFiDrv;
5557

@@ -59,6 +61,7 @@ class WiFiClient : public Client {
5961
static uint16_t _srcport;
6062
uint8_t _sock; //not used
6163
uint16_t _socket;
64+
unsigned long _connect_timeout;
6265
};
6366

6467
#endif

0 commit comments

Comments
 (0)