Blame doc/functions/gnutls_record_send

Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
@deftypefun {ssize_t} {gnutls_record_send} (gnutls_session_t @var{session}, const void * @var{data}, size_t @var{data_size})
Packit aea12f
@var{session}: is a @code{gnutls_session_t}  type.
Packit aea12f
Packit aea12f
@var{data}: contains the data to send
Packit aea12f
Packit aea12f
@var{data_size}: is the length of the data
Packit aea12f
Packit aea12f
This function has the similar semantics with @code{send()} .  The only
Packit aea12f
difference is that it accepts a GnuTLS session, and uses different
Packit aea12f
error codes.
Packit aea12f
Note that if the send buffer is full, @code{send()}  will block this
Packit Service 991b93
function.  See the @code{send()}  documentation for more information.
Packit aea12f
Packit aea12f
You can replace the default push function which is @code{send()} , by using
Packit aea12f
@code{gnutls_transport_set_push_function()} .
Packit aea12f
Packit Service 991b93
If the EINTR is returned by the internal push function
Packit aea12f
then @code{GNUTLS_E_INTERRUPTED}  will be returned. If
Packit aea12f
@code{GNUTLS_E_INTERRUPTED}  or @code{GNUTLS_E_AGAIN}  is returned, you must
Packit Service 991b93
call this function again with the exact same parameters, or provide a
Packit Service 991b93
@code{NULL}  pointer for  @code{data} and 0 for  @code{data_size} , in order to write the
Packit Service 991b93
same data as before. If you wish to discard the previous data instead
Packit Service 991b93
of retrying, you must call @code{gnutls_record_discard_queued()}  before
Packit Service 991b93
calling this function with different parameters. Note that the latter
Packit Service 991b93
works only on special transports (e.g., UDP).
Packit Service 991b93
cf. @code{gnutls_record_get_direction()} .
Packit aea12f
Packit aea12f
Note that in DTLS this function will return the @code{GNUTLS_E_LARGE_PACKET} 
Packit aea12f
error code if the send data exceed the data MTU value - as returned
Packit aea12f
by @code{gnutls_dtls_get_data_mtu()} . The errno value EMSGSIZE
Packit Service 991b93
also maps to @code{GNUTLS_E_LARGE_PACKET} .
Packit aea12f
Note that since 3.2.13 this function can be called under cork in DTLS
Packit aea12f
mode, and will refuse to send data over the MTU size by returning
Packit aea12f
@code{GNUTLS_E_LARGE_PACKET} .
Packit aea12f
Packit aea12f
@strong{Returns:} The number of bytes sent, or a negative error code.  The
Packit aea12f
number of bytes sent might be less than  @code{data_size} .  The maximum
Packit aea12f
number of bytes this function can send in a single call depends
Packit aea12f
on the negotiated maximum record size.
Packit aea12f
@end deftypefun