summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaiki Ueno <dueno@redhat.com>2018-04-30 14:27:52 +0200
committerDaiki Ueno <dueno@redhat.com>2018-05-07 13:03:24 +0200
commit220ed0691a493e8ced608a5d77b54c358afba6f0 (patch)
treeb53a6a21ed7da432f7b1c14df5a01b178159570c
parentd67a01fbc2fac87929b1d9669d96b02f366cfdcb (diff)
downloadgnutls-220ed0691a493e8ced608a5d77b54c358afba6f0.tar.gz
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 <dueno@redhat.com>
-rw-r--r--src/socket.c2
1 files changed, 1 insertions, 1 deletions
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