From d27a12ace6e8c783d642eee3086cf6de1e6b1f17 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 14 Oct 2019 21:25:27 +0200 Subject: [PATCH] Fix assertion errors (#72) * Fix assertion errors * Add state check * replace tabs with spaces --- src/AsyncTCP.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/AsyncTCP.cpp b/src/AsyncTCP.cpp index 9071ead..bbeffe5 100644 --- a/src/AsyncTCP.cpp +++ b/src/AsyncTCP.cpp @@ -847,10 +847,12 @@ int8_t AsyncClient::_connected(void* pcb, int8_t err){ void AsyncClient::_error(int8_t err) { if(_pcb){ tcp_arg(_pcb, NULL); - tcp_sent(_pcb, NULL); - tcp_recv(_pcb, NULL); - tcp_err(_pcb, NULL); - tcp_poll(_pcb, NULL, 0); + if(_pcb->state == LISTEN) { + tcp_sent(_pcb, NULL); + tcp_recv(_pcb, NULL); + tcp_err(_pcb, NULL); + tcp_poll(_pcb, NULL, 0); + } _pcb = NULL; } if(_error_cb) { @@ -868,10 +870,12 @@ int8_t AsyncClient::_lwip_fin(tcp_pcb* pcb, int8_t err) { return ERR_OK; } tcp_arg(_pcb, NULL); - tcp_sent(_pcb, NULL); - tcp_recv(_pcb, NULL); - tcp_err(_pcb, NULL); - tcp_poll(_pcb, NULL, 0); + if(_pcb->state == LISTEN) { + tcp_sent(_pcb, NULL); + tcp_recv(_pcb, NULL); + tcp_err(_pcb, NULL); + tcp_poll(_pcb, NULL, 0); + } if(tcp_close(_pcb) != ERR_OK) { tcp_abort(_pcb); }