Skip to content

Commit 7a76d1e

Browse files
committed
- Add more logs to warn about problematic queue size
- Add logs for pcb was closed before reaching LwIP task
1 parent e0787d9 commit 7a76d1e

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

src/AsyncTCP.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,7 @@ static int8_t _tcp_clear_events(void *arg) {
354354
e->arg = arg;
355355
if (!_prepend_async_event(&e)) {
356356
free((void *)(e));
357+
log_e("Failed to queue event: LWIP_TCP_CLEAR");
357358
return ERR_TIMEOUT;
358359
}
359360
return ERR_OK;
@@ -372,6 +373,7 @@ static int8_t _tcp_connected(void *arg, tcp_pcb *pcb, int8_t err) {
372373
e->connected.err = err;
373374
if (!_prepend_async_event(&e)) {
374375
free((void *)(e));
376+
log_e("Failed to queue event: LWIP_TCP_CONNECTED");
375377
return ERR_TIMEOUT;
376378
}
377379
return ERR_OK;
@@ -397,6 +399,7 @@ static int8_t _tcp_poll(void *arg, struct tcp_pcb *pcb) {
397399
// poll events are not critical 'cause those are repetitive, so we may not wait the queue in any case
398400
if (!_send_async_event(&e, 0)) {
399401
free((void *)(e));
402+
log_e("Failed to queue event: LWIP_TCP_POLL");
400403
return ERR_TIMEOUT;
401404
}
402405
return ERR_OK;
@@ -425,6 +428,7 @@ static int8_t _tcp_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *pb, int8_t
425428
}
426429
if (!_send_async_event(&e)) {
427430
free((void *)(e));
431+
log_e("Failed to queue event: LWIP_TCP_RECV or LWIP_TCP_FIN");
428432
return ERR_TIMEOUT;
429433
}
430434
return ERR_OK;
@@ -443,6 +447,7 @@ static int8_t _tcp_sent(void *arg, struct tcp_pcb *pcb, uint16_t len) {
443447
e->sent.len = len;
444448
if (!_send_async_event(&e)) {
445449
free((void *)(e));
450+
log_e("Failed to queue event: LWIP_TCP_SENT");
446451
return ERR_TIMEOUT;
447452
}
448453
return ERR_OK;
@@ -460,6 +465,7 @@ static void _tcp_error(void *arg, int8_t err) {
460465
e->error.err = err;
461466
if (!_send_async_event(&e)) {
462467
free((void *)(e));
468+
log_e("Failed to queue event: LWIP_TCP_ERROR");
463469
}
464470
}
465471

@@ -480,6 +486,7 @@ static void _tcp_dns_found(const char *name, struct ip_addr *ipaddr, void *arg)
480486
}
481487
if (!_send_async_event(&e)) {
482488
free((void *)(e));
489+
log_e("Failed to queue event: LWIP_TCP_DNS");
483490
}
484491
}
485492

@@ -495,6 +502,7 @@ static int8_t _tcp_accept(void *arg, AsyncClient *client) {
495502
e->accept.client = client;
496503
if (!_prepend_async_event(&e)) {
497504
free((void *)(e));
505+
log_e("Failed to queue event: LWIP_TCP_ACCEPT");
498506
return ERR_TIMEOUT;
499507
}
500508
return ERR_OK;
@@ -536,6 +544,8 @@ static err_t _tcp_output_api(struct tcpip_api_call_data *api_call_msg) {
536544
msg->err = ERR_CONN;
537545
if (msg->closed_slot == INVALID_CLOSED_SLOT || !_closed_slots[msg->closed_slot]) {
538546
msg->err = tcp_output(msg->pcb);
547+
} else {
548+
log_e("pcb was closed before reaching LwIP task");
539549
}
540550
return msg->err;
541551
}
@@ -556,6 +566,8 @@ static err_t _tcp_write_api(struct tcpip_api_call_data *api_call_msg) {
556566
msg->err = ERR_CONN;
557567
if (msg->closed_slot == INVALID_CLOSED_SLOT || !_closed_slots[msg->closed_slot]) {
558568
msg->err = tcp_write(msg->pcb, msg->write.data, msg->write.size, msg->write.apiflags);
569+
} else {
570+
log_e("pcb was closed before reaching LwIP task");
559571
}
560572
return msg->err;
561573
}
@@ -582,6 +594,8 @@ static err_t _tcp_recved_api(struct tcpip_api_call_data *api_call_msg) {
582594
// if(msg->closed_slot != INVALID_CLOSED_SLOT) {
583595
msg->err = 0;
584596
tcp_recved(msg->pcb, msg->received);
597+
} else {
598+
log_e("pcb was closed before reaching LwIP task");
585599
}
586600
return msg->err;
587601
}
@@ -603,6 +617,8 @@ static err_t _tcp_close_api(struct tcpip_api_call_data *api_call_msg) {
603617
msg->err = ERR_CONN;
604618
if (msg->closed_slot == INVALID_CLOSED_SLOT || !_closed_slots[msg->closed_slot]) {
605619
msg->err = tcp_close(msg->pcb);
620+
} else {
621+
log_e("pcb was closed before reaching LwIP task");
606622
}
607623
return msg->err;
608624
}
@@ -623,6 +639,8 @@ static err_t _tcp_abort_api(struct tcpip_api_call_data *api_call_msg) {
623639
msg->err = ERR_CONN;
624640
if (msg->closed_slot == INVALID_CLOSED_SLOT || !_closed_slots[msg->closed_slot]) {
625641
tcp_abort(msg->pcb);
642+
} else {
643+
log_e("pcb was closed before reaching LwIP task");
626644
}
627645
return msg->err;
628646
}

0 commit comments

Comments
 (0)