@@ -712,16 +712,20 @@ STATIC mp_obj_t lwip_socket_connect(mp_obj_t self_in, mp_obj_t addr_in) {
712712}
713713STATIC 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