libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

commit 61f3f0440ddeaf97bf6ea3e41ffc3b19d8179ce6
parent 51589165368da1e00235d0c58b823ec3598be78b
Author: Matthias Wachs <wachs@in.tum.de>
Date:   Tue, 24 Aug 2010 12:26:52 +0000

FIXED: gnutls_record_recv can return GNUTLS_E_AGAIN

In this situation gnutls_record_recv has to be called again



Diffstat:
Msrc/daemon/daemon.c | 13++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/daemon/daemon.c b/src/daemon/daemon.c @@ -349,7 +349,18 @@ static pthread_mutex_t MHD_gnutls_init_mutex; static ssize_t recv_tls_adapter (struct MHD_Connection *connection, void *other, size_t i) { - return gnutls_record_recv (connection->tls_session, other, i); + int res; + res = gnutls_record_recv (connection->tls_session, other, i); + if (res != GNUTLS_E_AGAIN) + return res; + else + { + while (res == GNUTLS_E_AGAIN) + { + res = gnutls_record_recv (connection->tls_session, other, i); + } + return res; + } } /**