mirror of
https://git.suyu.dev/suyu/mbedtls.git
synced 2025-12-23 15:55:10 +01:00
- Changed behaviour of net_recv(), ssl_fetch_input() and ssl_read(). net_recv() now returns 0 on EOF instead of POLARSSL_ERR_NET_CONN_RESET. ssl_fetch_input() returns POLARSSL_ERR_SSL_CONN_EOF on an EOF from its f_recv() function. ssl_read() returns 0 if a POLARSSL_ERR_SSL_CONN_EOF is received after the handshake.
- Network functions now return POLARSSL_ERR_NET_WANT_READ or POLARSSL_ERR_NET_WANT_WRITE instead of the ambiguous POLARSSL_ERR_NET_TRY_AGAIN
This commit is contained in:
parent
e471cd14bd
commit
831a755d9e
12 changed files with 59 additions and 35 deletions
|
|
@ -239,7 +239,7 @@ int net_accept( int bind_fd, int *client_fd, void *client_ip )
|
|||
if( *client_fd < 0 )
|
||||
{
|
||||
if( net_is_blocking() != 0 )
|
||||
return( POLARSSL_ERR_NET_TRY_AGAIN );
|
||||
return( POLARSSL_ERR_NET_WANT_READ );
|
||||
|
||||
return( POLARSSL_ERR_NET_ACCEPT_FAILED );
|
||||
}
|
||||
|
|
@ -292,13 +292,10 @@ int net_recv( void *ctx, unsigned char *buf, size_t len )
|
|||
{
|
||||
int ret = read( *((int *) ctx), buf, len );
|
||||
|
||||
if( len > 0 && ret == 0 )
|
||||
return( POLARSSL_ERR_NET_CONN_RESET );
|
||||
|
||||
if( ret < 0 )
|
||||
{
|
||||
if( net_is_blocking() != 0 )
|
||||
return( POLARSSL_ERR_NET_TRY_AGAIN );
|
||||
return( POLARSSL_ERR_NET_WANT_READ );
|
||||
|
||||
#if defined(_WIN32) || defined(_WIN32_WCE)
|
||||
if( WSAGetLastError() == WSAECONNRESET )
|
||||
|
|
@ -308,7 +305,7 @@ int net_recv( void *ctx, unsigned char *buf, size_t len )
|
|||
return( POLARSSL_ERR_NET_CONN_RESET );
|
||||
|
||||
if( errno == EINTR )
|
||||
return( POLARSSL_ERR_NET_TRY_AGAIN );
|
||||
return( POLARSSL_ERR_NET_WANT_READ );
|
||||
#endif
|
||||
|
||||
return( POLARSSL_ERR_NET_RECV_FAILED );
|
||||
|
|
@ -327,7 +324,7 @@ int net_send( void *ctx, unsigned char *buf, size_t len )
|
|||
if( ret < 0 )
|
||||
{
|
||||
if( net_is_blocking() != 0 )
|
||||
return( POLARSSL_ERR_NET_TRY_AGAIN );
|
||||
return( POLARSSL_ERR_NET_WANT_WRITE );
|
||||
|
||||
#if defined(_WIN32) || defined(_WIN32_WCE)
|
||||
if( WSAGetLastError() == WSAECONNRESET )
|
||||
|
|
@ -337,7 +334,7 @@ int net_send( void *ctx, unsigned char *buf, size_t len )
|
|||
return( POLARSSL_ERR_NET_CONN_RESET );
|
||||
|
||||
if( errno == EINTR )
|
||||
return( POLARSSL_ERR_NET_TRY_AGAIN );
|
||||
return( POLARSSL_ERR_NET_WANT_WRITE );
|
||||
#endif
|
||||
|
||||
return( POLARSSL_ERR_NET_SEND_FAILED );
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue