Next: Handling alerts, Previous: Data transfer and termination, Up: How to use GnuTLS in applications [Contents][Index]
Although gnutls_record_send is sufficient to transmit data to the peer, when many small chunks of data are to be transmitted it is inefficient and wastes bandwidth due to the TLS record overhead. In that case it is preferable to combine the small chunks before transmission. The following functions provide that functionality.
session: is a gnutls_session_t
type.
If called, gnutls_record_send()
will no longer send any records.
Any sent records will be cached until gnutls_record_uncork()
is called.
This function is safe to use with DTLS after GnuTLS 3.3.0.
Since: 3.1.9
session: is a gnutls_session_t
type.
flags: Could be zero or GNUTLS_RECORD_WAIT
This resets the effect of gnutls_record_cork()
, and flushes any pending
data. If the GNUTLS_RECORD_WAIT
flag is specified then this
function will block until the data is sent or a fatal error
occurs (i.e., the function will retry on GNUTLS_E_AGAIN
and
GNUTLS_E_INTERRUPTED
).
If the flag GNUTLS_RECORD_WAIT
is not specified and the function
is interrupted then the GNUTLS_E_AGAIN
or GNUTLS_E_INTERRUPTED
errors will be returned. To obtain the data left in the corked
buffer use gnutls_record_check_corked()
.
Returns: On success the number of transmitted data is returned, or otherwise a negative error code.
Since: 3.1.9