Blame doc/functions/gnutls_record_send

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