This function initializes the current session to null. Every
session must be initialized before use, so internal structures can
be allocated. This function allocates structures which can only
be freed by calling gnutls_deinit(). Returns GNUTLS_E_SUCCESS (0) on success.
flags can be one of GNUTLS_CLIENT, GNUTLS_SERVER, GNUTLS_DATAGRAM,
GNUTLS_NONBLOCK or GNUTLS_NOSIGNAL (since 3.4.2).
The flag GNUTLS_NO_REPLAY_PROTECTION will disable any
replay protection in DTLS mode. That must only used when
replay protection is achieved using other means.
Note that since version 3.1.2 this function enables some common
TLS extensions such as session tickets and OCSP certificate status
request in client side by default. To prevent that use the GNUTLS_NO_EXTENSIONS