@@ -383,13 +383,14 @@ STATIC mp_uint_t socket_stream_read(mp_obj_t self_in, void *buf, mp_uint_t size,
383
383
// XXX Would be nicer to use RTC to handle timeouts
384
384
for (int i = 0 ; i <=sock -> retries ; i ++ ) {
385
385
MP_THREAD_GIL_EXIT ();
386
- int x = lwip_recvfrom_r (sock -> fd , buf , size , 0 , NULL , NULL );
386
+ int r = lwip_recvfrom_r (sock -> fd , buf , size , 0 , NULL , NULL );
387
387
MP_THREAD_GIL_ENTER ();
388
- if (x >= 0 ) return x ;
389
- if (x < 0 && errno != EWOULDBLOCK ) { * errcode = errno ; return MP_STREAM_ERROR ; }
388
+ if (r >= 0 ) return r ;
389
+ if (r < 0 && errno != EWOULDBLOCK ) { * errcode = errno ; return MP_STREAM_ERROR ; }
390
390
check_for_exceptions ();
391
391
}
392
- return 0 ; // causes a timeout error to be raised.
392
+ * errcode = sock -> retries == 0 ? MP_EWOULDBLOCK : MP_ETIMEDOUT ;
393
+ return MP_STREAM_ERROR ;
393
394
}
394
395
395
396
STATIC mp_uint_t socket_stream_write (mp_obj_t self_in , const void * buf , mp_uint_t size , int * errcode ) {
@@ -402,7 +403,8 @@ STATIC mp_uint_t socket_stream_write(mp_obj_t self_in, const void *buf, mp_uint_
402
403
if (r < 0 && errno != EWOULDBLOCK ) { * errcode = errno ; return MP_STREAM_ERROR ; }
403
404
check_for_exceptions ();
404
405
}
405
- return 0 ;
406
+ * errcode = sock -> retries == 0 ? MP_EWOULDBLOCK : MP_ETIMEDOUT ;
407
+ return MP_STREAM_ERROR ;
406
408
}
407
409
408
410
STATIC mp_uint_t socket_stream_ioctl (mp_obj_t self_in , mp_uint_t request , uintptr_t arg , int * errcode ) {
0 commit comments