[gnutls-help] gnutls_record_send() behavior while corked
attilamolnar at hush.com
Tue Mar 3 23:48:14 CET 2015
I'd like to use the corking functionality introduced in 3.1,
but there is something I don't fully understand.
The docs for gnutls_record_send() say that when corked
"All queued records will be sent when gnutls_uncork() is called
or when the maximum record size is reached.".
While testing I found that even if I give it more data than the
record size via multiple gnutls_record_send() calls, it accepts
all of it and does no output until gnutls_record_uncork() is called
which then sends multiple records.
gnutls_record_send() always returned a number equal to the number
of bytes given to it as data_size.
The latter half of the quote from the manual implies that
gnutls_record_send() can send records and thus call the push
function while corked.
Which one is it? Is it correct to assume that while corked,
gnutls_record_send() simply copies the data into an internal
buffer and the gnutls_record_uncork() function does something
equivalent to what gnutls_record_send() does when not corked,
but operates on all of the data given to it earlier?
More information about the Gnutls-help