Skip to content

Commit 23156ce

Browse files
committed
add more debug for tcp delay problem esp8266#1430
1 parent 371c788 commit 23156ce

File tree

1 file changed

+22
-5
lines changed

1 file changed

+22
-5
lines changed

libraries/ESP8266WiFi/src/include/ClientContext.h

+22-5
Original file line numberDiff line numberDiff line change
@@ -223,28 +223,45 @@ class ClientContext {
223223

224224
size_t room = tcp_sndbuf(_pcb);
225225
size_t will_send = (room < size) ? room : size;
226+
227+
if(_size_sent > 0) {
228+
DEBUGV(":wr _size_sent: %d\r\n", _size_sent);
229+
}
230+
231+
_size_sent = will_send;
232+
226233
err_t err = tcp_write(_pcb, data, will_send, 0);
227234
if(err != ERR_OK) {
228-
DEBUGV(":wr !ERR_OK\r\n");
235+
DEBUGV(":wr !ERR_OK %d\r\n", err);
229236
return 0;
230237
}
231238

232-
_size_sent = will_send;
233239
DEBUGV(":wr\r\n");
234240
tcp_output( _pcb );
241+
if(err != ERR_OK) {
242+
DEBUGV(":wro !ERR_OK %d\r\n", err);
243+
return 0;
244+
}
245+
235246
_send_waiting = true;
236247
delay(5000); // max send timeout
237248
_send_waiting = false;
238-
DEBUGV(":ww\r\n");
249+
250+
DEBUGV(":ww %d\r\n", (will_send - _size_sent));
239251
return will_send - _size_sent;
240252
}
241253

242254
private:
243255

244256
err_t _sent(tcp_pcb* pcb, uint16_t len) {
245-
DEBUGV(":sent %d\r\n", len);
257+
if(len > _size_sent) {
258+
DEBUGV(":sent error len (%d) > _size_sent (%d)!?\r\n", len, _size_sent);
259+
}
246260
_size_sent -= len;
247-
if(_size_sent == 0 && _send_waiting) esp_schedule();
261+
DEBUGV(":sent %d left: %d\r\n", len, _size_sent);
262+
if(_size_sent == 0 && _send_waiting) {
263+
esp_schedule();
264+
}
248265
return ERR_OK;
249266
}
250267

0 commit comments

Comments
 (0)