@deftypefun {int} {gnutls_alpn_set_protocols} (gnutls_session_t @var{session}, const gnutls_datum_t * @var{protocols}, unsigned @var{protocols_size}, unsigned int @var{flags}) @var{session}: is a @code{gnutls_session_t} type. @var{protocols}: is the protocol names to add. @var{protocols_size}: the number of protocols to add. @var{flags}: zero or a sequence of @code{gnutls_alpn_flags_t} This function is to be used by both clients and servers, to declare the supported ALPN protocols, which are used during negotiation with peer. See @code{gnutls_alpn_flags_t} description for the documentation of available flags. @strong{Returns:} On success, @code{GNUTLS_E_SUCCESS} (0) is returned, otherwise a negative error code is returned. Since 3.2.0 @end deftypefun