Merge pull request #4148 from Neradoc/fix-recv_into

Fix socket.recv_into receiving one less byte than expected
This commit is contained in:
Lucian Copeland 2021-02-08 11:29:41 -05:00 committed by GitHub
commit 1043d619fd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -181,7 +181,7 @@ bool common_hal_socketpool_socket_connect(socketpool_socket_obj_t* self,
opts = opts | O_NONBLOCK; opts = opts | O_NONBLOCK;
lwip_fcntl(self->num, F_SETFL, opts); lwip_fcntl(self->num, F_SETFL, opts);
if (result) { if (result >= 0) {
self->connected = true; self->connected = true;
return true; return true;
} else { } else {
@ -256,7 +256,7 @@ mp_uint_t common_hal_socketpool_socket_recv_into(socketpool_socket_obj_t* self,
timed_out = supervisor_ticks_ms64() - start_ticks >= self->timeout_ms; timed_out = supervisor_ticks_ms64() - start_ticks >= self->timeout_ms;
} }
RUN_BACKGROUND_TASKS; RUN_BACKGROUND_TASKS;
received = lwip_recv(self->num, (void*) buf, len - 1, 0); received = lwip_recv(self->num, (void*) buf, len, 0);
// In non-blocking mode, fail instead of looping // In non-blocking mode, fail instead of looping
if (received == -1 && self->timeout_ms == 0) { if (received == -1 && self->timeout_ms == 0) {