Update WiFiClient.cpp (#3608)

fixed the connected() function so that it only checks errno if recv returns a value of -1.

"in the even of an error, errno is set to indicate the error" --manpage

This fixes the ESP32 Webserver when dealing with a modern webserver with a slow SD card.
This commit is contained in:
Guil-T 2020-01-20 09:08:17 -05:00 committed by Me No Dev
parent 86de90fe24
commit 89351e3ade

View File

@ -495,6 +495,8 @@ uint8_t WiFiClient::connected()
int res = recv(fd(), &dummy, 0, MSG_DONTWAIT); int res = recv(fd(), &dummy, 0, MSG_DONTWAIT);
// avoid unused var warning by gcc // avoid unused var warning by gcc
(void)res; (void)res;
// recv only sets errno if res is -1
if (res < 0){
switch (errno) { switch (errno) {
case EWOULDBLOCK: case EWOULDBLOCK:
case ENOENT: //caused by vfs case ENOENT: //caused by vfs
@ -513,6 +515,9 @@ uint8_t WiFiClient::connected()
_connected = true; _connected = true;
break; break;
} }
} else {
_connected = true;
}
} }
return _connected; return _connected;
} }