gnutls_bye — terminate the current TLS/SSL connection.
#include <gnutls/gnutls.h>
int
gnutls_bye( |
gnutls_session_t | session, |
gnutls_close_request_t | how) ; |
is a gnutls_session_t structure.
is an integer
Terminates the current TLS/SSL connection. The connection
should have been initiated using gnutls_handshake
(). how
should be one of
GNUTLS_SHUT_RDWR
, GNUTLS_SHUT_WR
.
In case of GNUTLS_SHUT_RDWR
then the TLS connection gets terminated and further receives
and sends will be disallowed. If the return value is zero you
may continue using the connection. GNUTLS_SHUT_RDWR
actually sends an alert
containing a close request and waits for the peer to reply
with the same message.
In case of GNUTLS_SHUT_WR
then the TLS connection gets terminated and further sends
will be disallowed. In order to reuse the connection you
should wait for an EOF from the peer. GNUTLS_SHUT_WR
sends an alert containing a
close request.
Note that not all implementations will properly terminate a TLS connection. Some of them, usually for performance reasons, will terminate only the underlying transport layer, thus causing a transmission error to the peer. This error cannot be distinguished from a malicious party prematurely terminating the session, thus this behavior is not recommended.
This function may also return GNUTLS_E_AGAIN or GNUTLS_E_INTERRUPTED; cf. gnutls_record_get_direction
().
GNUTLS_E_SUCCESS on success, or an error code, see function documentation for entire semantics.
The full documentation for gnutls is maintained as a Texinfo manual. If the info and gnutls programs are properly installed at your site, the command
info gnutls
should give you access to the complete manual.
COPYRIGHT |
---|
Copyright © 2008 Free Software Foundation. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. |