SYNOPSIS
#include <gnutls/gnutls.h>int gnutls_bye(gnutls_session_t session, gnutls_close_request_t how);
ARGUMENTS
- gnutls_session_t session
- is a gnutls_session_t type.
- gnutls_close_request_t how
- is an integer
DESCRIPTION
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 the TLS session gets terminated and further receives and sends will be disallowed. If the return value is zero you may continue using the underlying transport layer. GNUTLS_SHUT_RDWR sends an alert containing a close request and waits for the peer to reply with the same message.
In case of GNUTLS_SHUT_WR the TLS session 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, and thus not distinguishing between a malicious party prematurely terminating the connection and normal termination.
This function may also return GNUTLS_E_AGAIN or GNUTLS_E_INTERRUPTED; cf. gnutls_record_get_direction().
RETURNS
GNUTLS_E_SUCCESS on success, or an error code, see function documentation for entire semantics.COPYRIGHT
Copyright © 2001-2016 Free Software Foundation, Inc., and others.Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.