diff --git a/common/rdr/TLSInStream.cxx b/common/rdr/TLSInStream.cxx index 3e1172f..cd81f22 100644 --- a/common/rdr/TLSInStream.cxx +++ b/common/rdr/TLSInStream.cxx @@ -111,9 +111,11 @@ size_t TLSInStream::readTLS(U8* buf, size_t len, bool wait) { int n; - n = in->check(1, 1, wait); - if (n == 0) - return 0; + if (gnutls_record_check_pending(session) == 0) { + n = in->check(1, 1, wait); + if (n == 0) + return 0; + } n = gnutls_record_recv(session, (void *) buf, len); if (n == GNUTLS_E_INTERRUPTED || n == GNUTLS_E_AGAIN)