|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@deftypefun {void} {gnutls_transport_set_fastopen} (gnutls_session_t @var{session}, int @var{fd}, struct sockaddr * @var{connect_addr}, socklen_t @var{connect_addrlen}, unsigned int @var{flags})
|
|
Packit Service |
4684c1 |
@var{session}: is a @code{gnutls_session_t} type.
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@var{fd}: is the session's socket descriptor
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@var{connect_addr}: is the address we want to connect to
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@var{connect_addrlen}: is the length of @code{connect_addr}
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@var{flags}: must be zero
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
Enables TCP Fast Open (TFO) for the specified TLS client session.
|
|
Packit Service |
4684c1 |
That means that TCP connection establishment and the transmission
|
|
Packit Service |
4684c1 |
of the first TLS client hello packet are combined. The
|
|
Packit Service |
4684c1 |
peer's address must be specified in @code{connect_addr} and @code{connect_addrlen} ,
|
|
Packit Service |
4684c1 |
and the socket specified by @code{fd} should not be connected.
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
TFO only works for TCP sockets of type AF_INET and AF_INET6.
|
|
Packit Service |
4684c1 |
If the OS doesn't support TCP fast open this function will result
|
|
Packit Service |
4684c1 |
to gnutls using @code{connect()} transparently during the first write.
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@strong{Note:} This function overrides all the transport callback functions.
|
|
Packit Service |
4684c1 |
If this is undesirable, TCP Fast Open must be implemented on the user
|
|
Packit Service |
4684c1 |
callback functions without calling this function. When using
|
|
Packit Service |
4684c1 |
this function, transport callbacks must not be set, and
|
|
Packit Service |
4684c1 |
@code{gnutls_transport_set_ptr()} or @code{gnutls_transport_set_int()}
|
|
Packit Service |
4684c1 |
must not be called.
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
On GNU/Linux TFO has to be enabled at the system layer, that is
|
|
Packit Service |
4684c1 |
in /proc/sys/net/ipv4/tcp_fastopen, bit 0 has to be set.
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
This function has no effect on server sessions.
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@strong{Since:} 3.5.3
|
|
Packit Service |
4684c1 |
@end deftypefun
|