- 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/programs/ssl/ssl_client1.c b/programs/ssl/ssl_client1.c
index 1c75bc5..fefb041 100644
--- a/programs/ssl/ssl_client1.c
+++ b/programs/ssl/ssl_client1.c
@@ -115,7 +115,7 @@
while( ( ret = ssl_write( &ssl, buf, len ) ) <= 0 )
{
- if( ret != POLARSSL_ERR_NET_TRY_AGAIN )
+ if( ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE )
{
printf( " failed\n ! ssl_write returned %d\n\n", ret );
goto exit;
@@ -137,7 +137,7 @@
memset( buf, 0, sizeof( buf ) );
ret = ssl_read( &ssl, buf, len );
- if( ret == POLARSSL_ERR_NET_TRY_AGAIN )
+ if( ret == POLARSSL_ERR_NET_WANT_READ || ret == POLARSSL_ERR_NET_WANT_WRITE )
continue;
if( ret == POLARSSL_ERR_SSL_PEER_CLOSE_NOTIFY )