diff --git a/libraries/ESP8266WiFi/src/WiFiClient.cpp b/libraries/ESP8266WiFi/src/WiFiClient.cpp index b8e27ce1c..073b2b8bc 100644 --- a/libraries/ESP8266WiFi/src/WiFiClient.cpp +++ b/libraries/ESP8266WiFi/src/WiFiClient.cpp @@ -136,7 +136,7 @@ int8_t ICACHE_FLASH_ATTR WiFiClient::_connected(void* pcb, int8_t err) void ICACHE_FLASH_ATTR WiFiClient::_err(int8_t err) { - DEBUGV(":err\r\n"); + DEBUGV(":err %d\r\n", err); esp_schedule(); } diff --git a/libraries/ESP8266WiFi/src/include/ClientContext.h b/libraries/ESP8266WiFi/src/include/ClientContext.h index 9c9c0dd1e..06b8f7a64 100644 --- a/libraries/ESP8266WiFi/src/include/ClientContext.h +++ b/libraries/ESP8266WiFi/src/include/ClientContext.h @@ -73,6 +73,7 @@ public: void unref() { + err_t err; DEBUGV(":ur %d\r\n", _refcnt); if (--_refcnt == 0) { @@ -82,7 +83,11 @@ public: tcp_sent(_pcb, NULL); tcp_recv(_pcb, NULL); tcp_err(_pcb, NULL); - tcp_close(_pcb); + err = tcp_close(_pcb); + if(err != ERR_OK) { + DEBUGV(":tc err %d\r\n", err); + tcp_abort(_pcb); + } _pcb = 0; } delete this; @@ -269,7 +274,7 @@ private: void _error(err_t err) { - DEBUGV(":er\r\n"); + DEBUGV(":er %d\r\n", err); _pcb = 0; if (_size_sent && _send_waiting) esp_schedule();