File: gnutls_record_send

package info (click to toggle)
gnutls28 3.3.8-6
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 51,388 kB
  • sloc: ansic: 191,357; asm: 60,370; sh: 21,457; makefile: 5,257; lisp: 1,531; yacc: 1,254; cpp: 1,155; perl: 199; sed: 16
file content (40 lines) | stat: -rw-r--r-- 1,747 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40




@deftypefun {ssize_t} {gnutls_record_send} (gnutls_session_t @var{session}, const void * @var{data}, size_t @var{data_size})
@var{session}: is a @code{gnutls_session_t}  structure.

@var{data}: contains the data to send

@var{data_size}: is the length of the data

This function has the similar semantics with @code{send()} .  The only
difference is that it accepts a GnuTLS session, and uses different
error codes.
Note that if the send buffer is full, @code{send()}  will block this
function.  See the @code{send()}  documentation for more information.  

You can replace the default push function which is @code{send()} , by using
@code{gnutls_transport_set_push_function()} .

If the EINTR is returned by the internal push function 
then @code{GNUTLS_E_INTERRUPTED}  will be returned. If
@code{GNUTLS_E_INTERRUPTED}  or @code{GNUTLS_E_AGAIN}  is returned, you must
call this function again, with the exact same parameters; alternatively
you could provide a @code{NULL}  pointer for data, and 0 for
size. cf. @code{gnutls_record_get_direction()} . 

Note that in DTLS this function will return the @code{GNUTLS_E_LARGE_PACKET} 
error code if the send data exceed the data MTU value - as returned
by @code{gnutls_dtls_get_data_mtu()} . The errno value EMSGSIZE
also maps to @code{GNUTLS_E_LARGE_PACKET} . 
Note that since 3.2.13 this function can be called under cork in DTLS
mode, and will refuse to send data over the MTU size by returning
@code{GNUTLS_E_LARGE_PACKET} .

@strong{Returns:} The number of bytes sent, or a negative error code.  The
number of bytes sent might be less than  @code{data_size} .  The maximum
number of bytes this function can send in a single call depends
on the negotiated maximum record size.
@end deftypefun