@@ -201,7 +201,8 @@ int8_t AsyncClient::abort(){
201201}
202202
203203void AsyncClient::close (bool now){
204- tcp_recved (_pcb, _rx_ack_len);
204+ if (_pcb)
205+ tcp_recved (_pcb, _rx_ack_len);
205206 if (now)
206207 _close ();
207208 else
@@ -366,10 +367,14 @@ void AsyncClient::_ssl_error(int8_t err){
366367#endif
367368
368369err_t AsyncClient::_sent (tcp_pcb* pcb, uint16_t len) {
370+ #if ASYNC_TCP_SSL_ENABLED
371+ if (_pcb_secure && !_handshake_done)
372+ return ERR_OK;
373+ #endif
369374 _rx_last_packet = millis ();
370- ASYNC_TCP_DEBUG (" _sent: %u\n " , len);
371375 _tx_unacked_len -= len;
372376 _tx_acked_len += len;
377+ ASYNC_TCP_DEBUG (" _sent: %u (%d %d)\n " , len, _tx_unacked_len, _tx_acked_len);
373378 if (_tx_unacked_len == 0 ){
374379 _pcb_busy = false ;
375380 if (_sent_cb)
@@ -395,7 +400,7 @@ err_t AsyncClient::_recv(tcp_pcb* pcb, pbuf* pb, err_t err) {
395400 ASYNC_TCP_DEBUG (" _recv err: %d\n " , read_bytes);
396401 _close ();
397402 }
398- return read_bytes;
403+ // return read_bytes;
399404 }
400405 return ERR_OK;
401406 }
@@ -743,27 +748,43 @@ void AsyncClient::ackPacket(struct pbuf * pb){
743748 pbuf_free (pb);
744749}
745750
746- const char * AsyncClient::errorToString (int8_t error){
747- switch (error){
748- case 0 : return " OK" ;
749- case -1 : return " Out of memory error" ;
750- case -2 : return " Buffer error" ;
751- case -3 : return " Timeout" ;
752- case -4 : return " Routing problem" ;
753- case -5 : return " Operation in progress" ;
754- case -6 : return " Illegal value" ;
755- case -7 : return " Operation would block" ;
756- case -8 : return " Connection aborted" ;
757- case -9 : return " Connection reset" ;
758- case -10 : return " Connection closed" ;
759- case -11 : return " Not connected" ;
760- case -12 : return " Illegal argument" ;
761- case -13 : return " Address in use" ;
762- case -14 : return " Low-level netif error" ;
763- case -15 : return " Already connected" ;
764- case -55 : return " DNS failed" ;
765- default : return " UNKNOWN" ;
766- }
751+ const char * AsyncClient::errorToString (int8_t error) {
752+ switch (error) {
753+ case ERR_OK:
754+ return " OK" ;
755+ case ERR_MEM:
756+ return " Out of memory error" ;
757+ case ERR_BUF:
758+ return " Buffer error" ;
759+ case ERR_TIMEOUT:
760+ return " Timeout" ;
761+ case ERR_RTE:
762+ return " Routing problem" ;
763+ case ERR_INPROGRESS:
764+ return " Operation in progress" ;
765+ case ERR_VAL:
766+ return " Illegal value" ;
767+ case ERR_WOULDBLOCK:
768+ return " Operation would block" ;
769+ case ERR_ABRT:
770+ return " Connection aborted" ;
771+ case ERR_RST:
772+ return " Connection reset" ;
773+ case ERR_CLSD:
774+ return " Connection closed" ;
775+ case ERR_CONN:
776+ return " Not connected" ;
777+ case ERR_ARG:
778+ return " Illegal argument" ;
779+ case ERR_USE:
780+ return " Address in use" ;
781+ case ERR_IF:
782+ return " Low-level netif error" ;
783+ case ERR_ISCONN:
784+ return " Connection already established" ;
785+ default :
786+ return " Unknown error" ;
787+ }
767788}
768789
769790const char * AsyncClient::stateToString (){
0 commit comments