@@ -614,7 +614,7 @@ bool ESP8266::dns_lookup(const char *name, char *ip)
614614 return done;
615615}
616616
617- nsapi_error_t ESP8266::send (int id, const void *data, uint32_t amount)
617+ nsapi_size_or_error_t ESP8266::send (int id, const void *data, uint32_t amount)
618618{
619619 if (_prev_send_ok_pending && _sock_i[id].proto == NSAPI_TCP) {
620620 tr_debug (" send(): Previous packet was not ACK-ed with SEND OK." );
@@ -649,7 +649,7 @@ nsapi_error_t ESP8266::send(int id, const void *data, uint32_t amount)
649649 // This means ESP8266 hasn't even started to receive data
650650 tr_debug (" send(): Didn't get \" >\" " );
651651 if (_sock_i[id].proto == NSAPI_TCP) {
652- ret = NSAPI_ERROR_WOULD_BLOCK; // Not neccesarily critical error.
652+ ret = NSAPI_ERROR_WOULD_BLOCK; // Not necessarily critical error.
653653 } else if (_sock_i[id].proto == NSAPI_UDP) {
654654 ret = NSAPI_ERROR_NO_MEMORY;
655655 }
@@ -667,6 +667,11 @@ nsapi_error_t ESP8266::send(int id, const void *data, uint32_t amount)
667667 if (!_parser.recv (" Recv %d bytes" , &bytes_confirmed)) {
668668 tr_debug (" send(): Bytes not confirmed." );
669669 ret = NSAPI_ERROR_DEVICE_ERROR;
670+ if (_sock_i[id].proto == NSAPI_TCP) {
671+ ret = NSAPI_ERROR_WOULD_BLOCK;
672+ } else if (_sock_i[id].proto == NSAPI_UDP) {
673+ ret = NSAPI_ERROR_NO_MEMORY;
674+ }
670675 goto END;
671676 } else if (bytes_confirmed != amount) {
672677 tr_debug (" send(): Error: confirmed %d bytes, but expected %d." , bytes_confirmed, amount);
@@ -724,7 +729,7 @@ nsapi_error_t ESP8266::send(int id, const void *data, uint32_t amount)
724729
725730 if (!_sock_i[id].open && ret < 0 ) {
726731 ret = NSAPI_ERROR_CONNECTION_LOST;
727- tr_debug (" send(): Socket closed abruptly." );
732+ tr_debug (" send(): Socket %d closed abruptly." , id );
728733 }
729734
730735 set_timeout ();
0 commit comments