8000 extmod/modlwip: Factor out "socket connected" check to a function. · micropython/micropython@43d4975 · GitHub
[go: up one dir, main page]

Skip to content

Commit 43d4975

Browse files
author
Paul Sokolovsky
committed
extmod/modlwip: Factor out "socket connected" check to a function.
Same code repeated for each send*() and recv*() function.
1 parent fda874e commit 43d4975

File tree

1 file changed

+12
-23
lines changed

1 file changed

+12
-23
lines changed

extmod/modlwip.c

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -712,16 +712,20 @@ STATIC mp_obj_t lwip_socket_connect(mp_obj_t self_in, mp_obj_t addr_in) {
712712
}
713713
STATIC MP_DEFINE_CONST_FUN_OBJ_2(lwip_socket_connect_obj, lwip_socket_connect);
714714

715-
STATIC mp_obj_t lwip_socket_send(mp_obj_t self_in, mp_obj_t buf_in) {
716-
lwip_socket_obj_t *socket = self_in;
717-
int _errno;
718-
715+
STATIC void lwip_socket_check_connected(lwip_socket_obj_t *socket) {
719716
if (socket->pcb.tcp == NULL) {
720717
// not connected
721-
_errno = error_lookup_table[-(socket->state)];
718+
int _errno = error_lookup_table[-socket->state];
722719
socket->state = _ERR_BADF;
723720
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(_errno)));
724721
}
722+
}
723+
724+
STATIC mp_obj_t lwip_socket_send(mp_obj_t self_in, mp_obj_t buf_in) {
725+
lwip_socket_obj_t *socket = self_in;
726+
int _errno;
727+
728+
lwip_socket_check_connected(socket);
725729

726730
mp_buffer_info_t bufinfo;
727731
mp_get_buffer_raise(buf_in, &bufinfo, MP_BUFFER_READ);
@@ -749,12 +753,7 @@ STATIC mp_obj_t lwip_socket_recv(mp_obj_t self_in, mp_obj_t len_in) {
749753
lwip_socket_obj_t *socket = self_in;
750754
int _errno;
751755

752-
if (socket->pcb.tcp == NULL) {
753-
// not connected
754-
_errno = error_lookup_table[-(socket->state)];
755-
socket->state = _ERR_BADF;
756-
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(_errno)));
757-
}
756+
lwip_socket_check_connected(socket);
758757

759758
mp_int_t len = mp_obj_get_int(len_in);
760759
vstr_t vstr;
@@ -787,12 +786,7 @@ STATIC mp_obj_t lwip_socket_sendto(mp_obj_t self_in, mp_obj_t data_in, mp_obj_t
787786
lwip_socket_obj_t *socket = self_in;
788787
int _errno;
789788

790-
if (socket->pcb.tcp == NULL) {
791-
// not connected
792-
_errno = error_lookup_table[-(socket->state)];
793-
socket->state = _ERR_BADF;
794-
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(_errno)));
795-
}
789+
lwip_socket_check_connected(socket);
796790

797791
mp_buffer_info_t bufinfo;
798792
mp_get_buffer_raise(data_in, &bufinfo, MP_BUFFER_READ);
@@ -823,12 +817,7 @@ STATIC mp_obj_t lwip_socket_recvfrom(mp_obj_t self_in, mp_obj_t len_in) {
823817
lwip_socket_obj_t *socket = self_in;
824818
int _errno;
825819

826-
if (socket->pcb.tcp == NULL) {
827-
// not connected
828-
_errno = error_lookup_table[-(socket->state)];
829-
socket->state = _ERR_BADF;
830-
nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(_errno)));
831-
}
820+
lwip_socket_check_connected(socket);
832821

833822
mp_int_t len = mp_obj_get_int(len_in);
834823
vstr_t vstr;

0 commit comments

Comments
 (0)
0