esp32/modsocket: Remove unix socket error code translation.
The ESP-IDF has its own errno codes which should propagate out to the user.
This commit is contained in:
parent
f12462ddc4
commit
771376a0cb
|
@ -140,16 +140,6 @@ void usocket_events_handler(void) {
|
||||||
|
|
||||||
#endif // MICROPY_PY_USOCKET_EVENTS
|
#endif // MICROPY_PY_USOCKET_EVENTS
|
||||||
|
|
||||||
NORETURN static void exception_from_errno(int _errno) {
|
|
||||||
// Here we need to convert from lwip errno values to MicroPython's standard ones
|
|
||||||
if (_errno == EADDRINUSE) {
|
|
||||||
_errno = MP_EADDRINUSE;
|
|
||||||
} else if (_errno == EINPROGRESS) {
|
|
||||||
_errno = MP_EINPROGRESS;
|
|
||||||
}
|
|
||||||
mp_raise_OSError(_errno);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void check_for_exceptions(void) {
|
static inline void check_for_exceptions(void) {
|
||||||
mp_handle_pending(true);
|
mp_handle_pending(true);
|
||||||
}
|
}
|
||||||
|
@ -277,7 +267,7 @@ STATIC mp_obj_t socket_make_new(const mp_obj_type_t *type_in, size_t n_args, siz
|
||||||
|
|
||||||
sock->fd = lwip_socket(sock->domain, sock->type, sock->proto);
|
sock->fd = lwip_socket(sock->domain, sock->type, sock->proto);
|
||||||
if (sock->fd < 0) {
|
if (sock->fd < 0) {
|
||||||
exception_from_errno(errno);
|
mp_raise_OSError(errno);
|
||||||
}
|
}
|
||||||
_socket_settimeout(sock, UINT64_MAX);
|
_socket_settimeout(sock, UINT64_MAX);
|
||||||
|
|
||||||
|
@ -291,7 +281,7 @@ STATIC mp_obj_t socket_bind(const mp_obj_t arg0, const mp_obj_t arg1) {
|
||||||
int r = lwip_bind(self->fd, res->ai_addr, res->ai_addrlen);
|
int r = lwip_bind(self->fd, res->ai_addr, res->ai_addrlen);
|
||||||
lwip_freeaddrinfo(res);
|
lwip_freeaddrinfo(res);
|
||||||
if (r < 0) {
|
if (r < 0) {
|
||||||
exception_from_errno(errno);
|
mp_raise_OSError(errno);
|
||||||
}
|
}
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
|
@ -302,7 +292,7 @@ STATIC mp_obj_t socket_listen(const mp_obj_t arg0, const mp_obj_t arg1) {
|
||||||
int backlog = mp_obj_get_int(arg1);
|
int backlog = mp_obj_get_int(arg1);
|
||||||
int r = lwip_listen(self->fd, backlog);
|
int r = lwip_listen(self->fd, backlog);
|
||||||
if (r < 0) {
|
if (r < 0) {
|
||||||
exception_from_errno(errno);
|
mp_raise_OSError(errno);
|
||||||
}
|
}
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
|
@ -323,7 +313,7 @@ STATIC mp_obj_t socket_accept(const mp_obj_t arg0) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (errno != EAGAIN) {
|
if (errno != EAGAIN) {
|
||||||
exception_from_errno(errno);
|
mp_raise_OSError(errno);
|
||||||
}
|
}
|
||||||
check_for_exceptions();
|
check_for_exceptions();
|
||||||
}
|
}
|
||||||
|
@ -365,7 +355,7 @@ STATIC mp_obj_t socket_connect(const mp_obj_t arg0, const mp_obj_t arg1) {
|
||||||
MP_THREAD_GIL_ENTER();
|
MP_THREAD_GIL_ENTER();
|
||||||
lwip_freeaddrinfo(res);
|
lwip_freeaddrinfo(res);
|
||||||
if (r != 0) {
|
if (r != 0) {
|
||||||
exception_from_errno(errno);
|
mp_raise_OSError(errno);
|
||||||
}
|
}
|
||||||
|
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
|
@ -384,7 +374,7 @@ STATIC mp_obj_t socket_setsockopt(size_t n_args, const mp_obj_t *args) {
|
||||||
int val = mp_obj_get_int(args[3]);
|
int val = mp_obj_get_int(args[3]);
|
||||||
int ret = lwip_setsockopt(self->fd, SOL_SOCKET, opt, &val, sizeof(int));
|
int ret = lwip_setsockopt(self->fd, SOL_SOCKET, opt, &val, sizeof(int));
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
exception_from_errno(errno);
|
mp_raise_OSError(errno);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -535,7 +525,7 @@ mp_obj_t _socket_recvfrom(mp_obj_t self_in, mp_obj_t len_in,
|
||||||
int errcode;
|
int errcode;
|
||||||
mp_uint_t ret = _socket_read_data(self_in, vstr.buf, len, from, from_len, &errcode);
|
mp_uint_t ret = _socket_read_data(self_in, vstr.buf, len, from, from_len, &errcode);
|
||||||
if (ret == MP_STREAM_ERROR) {
|
if (ret == MP_STREAM_ERROR) {
|
||||||
exception_from_errno(errcode);
|
mp_raise_OSError(errcode);
|
||||||
}
|
}
|
||||||
|
|
||||||
vstr.len = ret;
|
vstr.len = ret;
|
||||||
|
@ -569,7 +559,7 @@ int _socket_send(socket_obj_t *sock, const char *data, size_t datalen) {
|
||||||
int r = lwip_write(sock->fd, data + sentlen, datalen - sentlen);
|
int r = lwip_write(sock->fd, data + sentlen, datalen - sentlen);
|
||||||
MP_THREAD_GIL_ENTER();
|
MP_THREAD_GIL_ENTER();
|
||||||
if (r < 0 && errno != EWOULDBLOCK) {
|
if (r < 0 && errno != EWOULDBLOCK) {
|
||||||
exception_from_errno(errno);
|
mp_raise_OSError(errno);
|
||||||
}
|
}
|
||||||
if (r > 0) {
|
if (r > 0) {
|
||||||
sentlen += r;
|
sentlen += r;
|
||||||
|
@ -627,7 +617,7 @@ STATIC mp_obj_t socket_sendto(mp_obj_t self_in, mp_obj_t data_in, mp_obj_t addr_
|
||||||
return mp_obj_new_int_from_uint(ret);
|
return mp_obj_new_int_from_uint(ret);
|
||||||
}
|
}
|
||||||
if (ret == -1 && errno != EWOULDBLOCK) {
|
if (ret == -1 && errno != EWOULDBLOCK) {
|
||||||
exception_from_errno(errno);
|
mp_raise_OSError(errno);
|
||||||
}
|
}
|
||||||
check_for_exceptions();
|
check_for_exceptions();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue