@@ -354,6 +354,8 @@ STATIC const mp_rom_map_elem_t socket_locals_dict_table[] = {
354
354
{ MP_ROM_QSTR (MP_QSTR_connect ), MP_ROM_PTR (& socket_connect_obj ) },
355
355
{ MP_ROM_QSTR (MP_QSTR_send ), MP_ROM_PTR (& socket_send_obj ) },
356
356
{ MP_ROM_QSTR (MP_QSTR_recv ), MP_ROM_PTR (& socket_recv_obj ) },
357
+ { MP_ROM_QSTR (MP_QSTR_write ), MP_ROM_PTR (& socket_send_obj ) },
358
+ { MP_ROM_QSTR (MP_QSTR_read ), MP_ROM_PTR (& socket_recv_obj ) },
357
359
{ MP_ROM_QSTR (MP_QSTR_sendto ), MP_ROM_PTR (& socket_sendto_obj ) },
358
360
{ MP_ROM_QSTR (MP_QSTR_recvfrom ), MP_ROM_PTR (& socket_recvfrom_obj ) },
359
361
{ MP_ROM_QSTR (MP_QSTR_setsockopt ), MP_ROM_PTR (& socket_setsockopt_obj ) },
@@ -382,7 +384,35 @@ mp_uint_t socket_ioctl(mp_obj_t self_in, mp_uint_t request, uintptr_t arg, int *
382
384
return self -> nic_type -> ioctl (self , request , arg , errcode );
383
385
}
384
386
387
+ mp_uint_t socket_read (mp_obj_t self_in , void * buf , mp_uint_t size , int * errcode ) {
388
+ mod_network_socket_obj_t * self = MP_OBJ_TO_PTR (self_in );
389
+ if (self -> nic == MP_OBJ_NULL ) {
390
+ return MP_STREAM_ERROR ;
391
+ }
392
+ mp_int_t ret = self -> nic_type -> recv (self , (byte * )buf , size , errcode );
393
+ if (ret < 0 ) {
394
+ ret = MP_STREAM_ERROR ;
395
+ * errcode = - (* errcode ); // expects a positive error code
396
+ }
397
+ return ret ;
398
+ }
399
+
400
+ mp_uint_t socket_write (mp_obj_t self_in , const void * buf , mp_uint_t size , int * errcode ) {
401
+ mod_network_socket_obj_t * self = MP_OBJ_TO_PTR (self_in );
402
+ if (self -> nic == MP_OBJ_NULL ) {
403
+ return MP_STREAM_ERROR ;
404
+ }
405
+ mp_int_t ret = self -> nic_type -> send (self , buf , size , errcode );
406
+ if (ret < 0 ) {
407
+ ret = MP_STREAM_ERROR ;
408
+ * errcode = - (* errcode ); // expects a positive error code
409
+ }
410
+ return ret ;
411
+ }
412
+
385
413
STATIC const mp_stream_p_t socket_stream_p = {
414
+ .read = socket_read ,
415
+ .write = socket_write ,
386
416
.ioctl = socket_ioctl ,
387
417
.is_text = false,
388
418
};
0 commit comments