Use non-blocking send in GNU TLS push callback.

This commit is contained in:
Vincent Richard 2014-01-06 21:30:43 +01:00
parent 59e635d317
commit fa399699d5

View File

@ -307,8 +307,14 @@ ssize_t TLSSocket_GnuTLS::gnutlsPushFunc
try
{
sok->m_wrapped->sendRaw
(reinterpret_cast <const byte_t*>(data), len);
const ssize_t ret = static_cast <ssize_t>
(sok->m_wrapped->sendRawNonBlocking
(reinterpret_cast <const byte_t*>(data), len));
if (ret == 0 && sok->m_wrapped->getStatus() & socket::STATUS_WOULDBLOCK)
return GNUTLS_E_AGAIN;
return ret;
}
catch (exception& e)
{
@ -317,8 +323,6 @@ ssize_t TLSSocket_GnuTLS::gnutlsPushFunc
sok->m_ex = e.clone();
return -1;
}
return len;
}