[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
6.8 Buffered data transfer
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 preferrable to combine the small chunks before transmission. The following functions provide that functionality.
- Function: void gnutls_record_cork (gnutls_session_t session)
session: is a
gnutls_session_t
structure.If called
gnutls_record_send()
will no longer send partial records. All queued records will be sent whengnutls_uncork()
is called, or when the maximum record size is reached.Since: 3.1.9
- Function: int gnutls_record_uncork (gnutls_session_t session, unsigned int flags)
session: is a
gnutls_session_t
structure.flags: Could be zero or
GNUTLS_RECORD_WAIT
This resets the effect of
gnutls_cork()
, and flushes any pending data. If theGNUTLS_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 onGNUTLS_E_AGAIN
andGNUTLS_E_INTERRUPTED
).If the flag
GNUTLS_RECORD_WAIT
is not specified and the function is interrupted then theGNUTLS_E_AGAIN
orGNUTLS_E_INTERRUPTED
errors will be returned. To obtain the data left in the corked buffer usegnutls_record_check_corked()
.Returns: On success the number of transmitted data is returned, or otherwise a negative error code.
Since: 3.1.9
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on February 9, 2014 using texi2html 5.0.