From f6b1a99b05c590d4f9d43a0891e6ddb70886926e Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Mon, 30 Apr 2018 14:27:52 +0200 Subject: gnutls-cli: ignore E_AGAIN to accommodate async handshake message When an async handshake message has arrived while no application data is available, gnutls_record_recv() returns GNUTLS_E_AGAIN and the loop in socket_recv() blocks. Since socket_recv() is guarded by select(), it should be safe to ignore GNUTLS_E_AGAIN. Signed-off-by: Daiki Ueno --- src/socket.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/socket.c b/src/socket.c index 363bd92c86..253607e5a8 100644 --- a/src/socket.c +++ b/src/socket.c @@ -61,7 +61,7 @@ socket_recv(const socket_st * socket, void *buffer, int buffer_size) if (ret == GNUTLS_E_HEARTBEAT_PING_RECEIVED) gnutls_heartbeat_pong(socket->session, 0); } - while (ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN + while (ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_HEARTBEAT_PING_RECEIVED); } else -- cgit v1.2.1