esp32/modsocket: Raise EAGAIN when accept fails in non-blocking mode.
EAGAIN should be for pure non-blocking mode and ETIMEDOUT for when there is a finite (but non-zero) timeout enabled.
This commit is contained in:
parent
8c9758ff2e
commit
883e987b90
|
@ -253,7 +253,13 @@ STATIC mp_obj_t socket_accept(const mp_obj_t arg0) {
|
||||||
if (errno != EAGAIN) exception_from_errno(errno);
|
if (errno != EAGAIN) exception_from_errno(errno);
|
||||||
check_for_exceptions();
|
check_for_exceptions();
|
||||||
}
|
}
|
||||||
if (new_fd < 0) mp_raise_OSError(MP_ETIMEDOUT);
|
if (new_fd < 0) {
|
||||||
|
if (self->retries == 0) {
|
||||||
|
mp_raise_OSError(MP_EAGAIN);
|
||||||
|
} else {
|
||||||
|
mp_raise_OSError(MP_ETIMEDOUT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// create new socket object
|
// create new socket object
|
||||||
socket_obj_t *sock = m_new_obj_with_finaliser(socket_obj_t);
|
socket_obj_t *sock = m_new_obj_with_finaliser(socket_obj_t);
|
||||||
|
|
Loading…
Reference in New Issue