|
@@ -266,6 +266,12 @@ ssize_t TlsTransport::ReadCallback(gnutls_transport_ptr_t ptr, void *data, size_
|
|
|
int TlsTransport::TimeoutCallback(gnutls_transport_ptr_t ptr, unsigned int ms) {
|
|
|
TlsTransport *t = static_cast<TlsTransport *>(ptr);
|
|
|
try {
|
|
|
+ message_ptr &message = t->mIncomingMessage;
|
|
|
+ size_t &position = t->mIncomingMessagePosition;
|
|
|
+
|
|
|
+ if(message && position < message->size())
|
|
|
+ return 1;
|
|
|
+
|
|
|
bool isReadable = t->mIncomingQueue.wait(
|
|
|
ms != GNUTLS_INDEFINITE_TIMEOUT ? std::make_optional(milliseconds(ms)) : nullopt);
|
|
|
return isReadable ? 1 : 0;
|