2008/12/28 Henri Verbeet hverbeet@gmail.com:
- while (received < data_size)
- {
ret = pgnutls_record_recv(ctx->session, data + received, data_size - received);
if (ret < 0)
{
if (ret == GNUTLS_E_AGAIN)
{
if (!received)
Shouldn't this be "if (received == data_size)"?
{
pgnutls_perror(ret);
HeapFree(GetProcessHeap(), 0, data);
TRACE("Returning SEC_E_INCOMPLETE_MESSAGE\n");
return SEC_E_INCOMPLETE_MESSAGE;
}
break;
}
else
{
pgnutls_perror(ret);
HeapFree(GetProcessHeap(), 0, data);
ERR("Returning SEC_E_INTERNAL_ERROR\n");
return SEC_E_INTERNAL_ERROR;
}
}
received += ret;
- }
2008/12/29 Rob Shearman robertshearman@gmail.com:
2008/12/28 Henri Verbeet hverbeet@gmail.com:
- while (received < data_size)
- {
ret = pgnutls_record_recv(ctx->session, data + received, data_size - received);
if (ret < 0)
{
if (ret == GNUTLS_E_AGAIN)
{
if (!received)
Shouldn't this be "if (received == data_size)"?
{
pgnutls_perror(ret);
HeapFree(GetProcessHeap(), 0, data);
TRACE("Returning SEC_E_INCOMPLETE_MESSAGE\n");
return SEC_E_INCOMPLETE_MESSAGE;
}
break;
}
else
{
pgnutls_perror(ret);
HeapFree(GetProcessHeap(), 0, data);
ERR("Returning SEC_E_INTERNAL_ERROR\n");
return SEC_E_INTERNAL_ERROR;
}
}
received += ret;
- }
The idea was to only return SEC_E_INCOMPLETE_MESSAGE if there's less than one complete TLS record in the buffer, it shouldn't be a problem to have eg. one complete message plus some bytes from the next one, setting the buffer size further down is supposed to take care of that.