Skip to content

Commit ba49f62

Browse files
[ssl] Ignore MBEDTLS_ERR_SSL_WANT_READ and MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET. (#291)
1 parent 31e9db6 commit ba49f62

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

libs/ssl/ssl.c

+13-4
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ static value ssl_recv_char(value ssl) {
228228
val_check_kind(ssl,k_ssl);
229229
r = mbedtls_ssl_read( val_ssl(ssl), &c, 1 );
230230
if( r <= 0 )
231-
neko_error();
231+
ssl_error(r);
232232
return alloc_int( c );
233233
}
234234

@@ -248,10 +248,15 @@ static value ssl_recv( value ssl, value data, value pos, value len ) {
248248
HANDLE_EINTR(recv_again);
249249
return block_error();
250250
}
251-
if( dlen == MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY )
251+
if (dlen == MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY
252+
|| dlen == MBEDTLS_ERR_SSL_WANT_READ
253+
#ifdef MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET
254+
|| dlen == MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET
255+
#endif
256+
)
252257
return alloc_int(0);
253258
if( dlen < 0 )
254-
neko_error();
259+
ssl_error(dlen);
255260
return alloc_int( dlen );
256261
}
257262

@@ -270,7 +275,11 @@ static value ssl_read( value ssl ) {
270275
HANDLE_EINTR(read_again);
271276
return block_error();
272277
}
273-
if( len == MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY )
278+
if( len == MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY || len == MBEDTLS_ERR_SSL_WANT_READ
279+
#ifdef MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET
280+
|| len == MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET
281+
#endif
282+
)
274283
break;
275284
if( len == 0 )
276285
break;

0 commit comments

Comments
 (0)