diff --git a/src/security/tls_session.cpp b/src/security/tls_session.cpp index e1faa6e2498c391305858d09eed7e09c1712fd70..90e995695063e0becacf085c240330112e4c6dc4 100644 --- a/src/security/tls_session.cpp +++ b/src/security/tls_session.cpp @@ -622,6 +622,11 @@ TlsSession::TlsSessionImpl::recvRaw(void* buf, size_t size) return -1; } + if (rxQueue_.empty()) { + gnutls_transport_set_errno(session_, EAGAIN); + return -1; + } + const auto& pkt = rxQueue_.front(); const std::size_t count = std::min(pkt.size(), size); std::copy_n(pkt.begin(), count, reinterpret_cast<ValueType*>(buf));