Skip to content

Commit 81376c4

Browse files
committed
Fix WiFiServer::available() returning valid client on outbound client connection
1 parent 74b67ed commit 81376c4

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

src/WiFiClient.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ WiFiClient::WiFiClient(uint8_t sock, uint8_t parentsock)
4141
_socket = sock;
4242
_flag = SOCKET_BUFFER_FLAG_CONNECTED;
4343
if (parentsock) {
44-
_flag |= ((uint32_t)(parentsock - 1)) << SOCKET_BUFFER_FLAG_PARENT_SOCKET_POS;
44+
_flag |= ((uint32_t)parentsock) << SOCKET_BUFFER_FLAG_PARENT_SOCKET_POS;
4545
}
4646
_head = 0;
4747
_tail = 0;

src/WiFiServer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ WiFiClient WiFiServer::available(uint8_t* status)
103103
for (int sock = 0; sock < TCP_SOCK_MAX; sock++) {
104104
client = WiFi._client[sock];
105105
if (client && client->_flag & SOCKET_BUFFER_FLAG_CONNECTED) {
106-
if (((client->_flag >> SOCKET_BUFFER_FLAG_PARENT_SOCKET_POS) & 0xff) == (uint8)_socket) {
106+
if (((client->_flag >> SOCKET_BUFFER_FLAG_PARENT_SOCKET_POS) & 0xff) == (uint8)(_socket + 1)) {
107107
return *client;
108108
}
109109
}

0 commit comments

Comments
 (0)