|
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
|