- 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_client2.c b/programs/ssl/ssl_client2.c index 353c21c..fcfa89d 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c
@@ -298,7 +298,7 @@ while( ( ret = ssl_handshake( &ssl ) ) != 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_handshake returned %d\n\n", ret ); goto exit; @@ -348,7 +348,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; @@ -370,7 +370,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 )