kopia lustrzana https://github.com/espressif/esp-idf
Remove check for would_block in mbedtls
Basically, in the portability layer, it is checked if the socket is NON-block, and if not, then even the EAGAIN and EWOULDBLOCK errors are diverted to a RECV error. This causes a problem for sockets with receive timeouts set. When such a timeout is set, the condition for NON_BLOCK isn't met and hence a hard error is returned. Searching for EAGAIN and EWOULDBLOCK in lwip returns only 3 results (accept, recvfrom, close) and all of them look to be genuine cases for EWOULDBLOCK. So removing this check to make receive timeout with TLS work.pull/4251/head
rodzic
acf114895d
commit
87c3decc12
|
@ -198,14 +198,6 @@ static int net_would_block( const mbedtls_net_context *ctx )
|
|||
{
|
||||
int error = errno;
|
||||
|
||||
/*
|
||||
* Never return 'WOULD BLOCK' on a non-blocking socket
|
||||
*/
|
||||
if ( ( fcntl( ctx->fd, F_GETFL, 0) & O_NONBLOCK ) != O_NONBLOCK ) {
|
||||
errno = error;
|
||||
return ( 0 );
|
||||
}
|
||||
|
||||
switch ( errno = error ) {
|
||||
#if defined EAGAIN
|
||||
case EAGAIN:
|
||||
|
|
Ładowanie…
Reference in New Issue