diff --git a/libraries/ESP8266WiFi/src/WiFiServer.cpp b/libraries/ESP8266WiFi/src/WiFiServer.cpp index c58a91476..868c1c561 100644 --- a/libraries/ESP8266WiFi/src/WiFiServer.cpp +++ b/libraries/ESP8266WiFi/src/WiFiServer.cpp @@ -81,19 +81,11 @@ void WiFiServer::begin() { } void WiFiServer::setNoDelay(bool nodelay) { - if (!_pcb) - return; - - if (nodelay) - tcp_nagle_disable(_pcb); - else - tcp_nagle_enable(_pcb); + _noDelay = nodelay; } bool WiFiServer::getNoDelay() { - if (!_pcb) - return false; - return tcp_nagle_disabled(_pcb); + return _noDelay; } bool WiFiServer::hasClient() { @@ -106,6 +98,7 @@ WiFiClient WiFiServer::available(byte* status) { if (_unclaimed) { WiFiClient result(_unclaimed); _unclaimed = _unclaimed->next(); + result.setNoDelay(_noDelay); DEBUGV("WS:av\r\n"); return result; } diff --git a/libraries/ESP8266WiFi/src/WiFiServer.h b/libraries/ESP8266WiFi/src/WiFiServer.h index 424a2331d..be0604916 100644 --- a/libraries/ESP8266WiFi/src/WiFiServer.h +++ b/libraries/ESP8266WiFi/src/WiFiServer.h @@ -42,6 +42,7 @@ private: ClientContext* _unclaimed; ClientContext* _discarded; + bool _noDelay = false; public: WiFiServer(IPAddress addr, uint16_t port);