Blame doc/functions/gnutls_session_ext_register

Packit Service 4684c1
Packit Service 4684c1
Packit Service 4684c1
Packit Service 4684c1
Packit Service 4684c1
@deftypefun {int} {gnutls_session_ext_register} (gnutls_session_t @var{session}, const char * @var{name}, int @var{id}, gnutls_ext_parse_type_t @var{parse_point}, gnutls_ext_recv_func @var{recv_func}, gnutls_ext_send_func @var{send_func}, gnutls_ext_deinit_data_func @var{deinit_func}, gnutls_ext_pack_func @var{pack_func}, gnutls_ext_unpack_func @var{unpack_func}, unsigned @var{flags})
Packit Service 4684c1
@var{session}: the session for which this extension will be set
Packit Service 4684c1
Packit Service 4684c1
@var{name}: the name of the extension to register
Packit Service 4684c1
Packit Service 4684c1
@var{id}: the numeric id of the extension
Packit Service 4684c1
Packit Service 4684c1
@var{parse_point}: the parse type of the extension (see gnutls_ext_parse_type_t)
Packit Service 4684c1
Packit Service 4684c1
@var{recv_func}: a function to receive the data
Packit Service 4684c1
Packit Service 4684c1
@var{send_func}: a function to send the data
Packit Service 4684c1
Packit Service 4684c1
@var{deinit_func}: a function deinitialize any private data
Packit Service 4684c1
Packit Service 4684c1
@var{pack_func}: a function which serializes the extension's private data (used on session packing for resumption)
Packit Service 4684c1
Packit Service 4684c1
@var{unpack_func}: a function which will deserialize the extension's private data
Packit Service 4684c1
Packit Service 4684c1
@var{flags}: must be zero or flags from @code{gnutls_ext_flags_t} 
Packit Service 4684c1
Packit Service 4684c1
This function will register a new extension type. The extension will be
Packit Service 4684c1
only usable within the registered session. If the extension type
Packit Service 4684c1
is already registered then @code{GNUTLS_E_ALREADY_REGISTERED}  will be returned,
Packit Service 4684c1
unless the flag @code{GNUTLS_EXT_FLAG_OVERRIDE_INTERNAL}  is specified. The latter
Packit Service 4684c1
flag when specified can be used to override certain extensions introduced
Packit Service 4684c1
after 3.6.0. It is expected to be used by applications which handle
Packit Service 4684c1
custom extensions that are not currently supported in GnuTLS, but direct
Packit Service 4684c1
support for them may be added in the future.
Packit Service 4684c1
Packit Service 4684c1
Each registered extension can store temporary data into the gnutls_session_t
Packit Service 4684c1
structure using @code{gnutls_ext_set_data()} , and they can be retrieved using
Packit Service 4684c1
@code{gnutls_ext_get_data()} .
Packit Service 4684c1
Packit Service 4684c1
The validity of the extension registered can be given by the appropriate flags
Packit Service 4684c1
of @code{gnutls_ext_flags_t} . If no validity is given, then the registered extension
Packit Service 4684c1
will be valid for client and TLS1.2 server hello (or encrypted extensions for TLS1.3).
Packit Service 4684c1
Packit Service 4684c1
@strong{Returns:} @code{GNUTLS_E_SUCCESS}  on success, otherwise a negative error code.
Packit Service 4684c1
Packit Service 4684c1
@strong{Since:} 3.5.5
Packit Service 4684c1
@end deftypefun