- 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
diff --git a/library/net.c b/library/net.c
index 5e811a5..ad2b278 100644
--- a/library/net.c
+++ b/library/net.c
@@ -239,7 +239,7 @@
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 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 @@
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 @@
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 @@
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 );