Blame doc/functions/gnutls_session_ext_register

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