
#use wml::openssl-macros area=docs page=SSL_CTX_set_quiet_shutdown

<title>Documents, SSL_CTX_set_quiet_shutdown(3)</title>

<h1>SSL_CTX_set_quiet_shutdown(3)</h1>

#use wml::imp::generic

{:
## What's this? [[s|(<STRONG>[^<].+?)</A>(</STRONG><DD>)|$1$2|sg]]
[[s|<P>\s+<P>|<P>|sg]]
[[s|<P>\s+</|</|sg]]
[[s|<DD>\s*<DT>|<DD>&nbsp;<DT>|sg]]
[[s|<DD>\s*</DL>|<DD>&nbsp;</DL>|sg]]
[[s|\[|&#91;|sg]]
[[s|\]|&#93;|sg]]

<!-- INDEX BEGIN -->

<UL>

	<LI><A HREF="#NAME">NAME</A>
	<LI><A HREF="#SYNOPSIS">SYNOPSIS</A>
	<LI><A HREF="#DESCRIPTION">DESCRIPTION</A>
	<LI><A HREF="#NOTES">NOTES</A>
	<LI><A HREF="#RETURN_VALUES">RETURN VALUES</A>
	<LI><A HREF="#SEE_ALSO">SEE ALSO</A>
</UL>
<!-- INDEX END -->

<HR>
<P>
<HR>
<H1><A NAME="NAME">NAME</A></H1>
<P>
SSL_CTX_set_quiet_shutdown, SSL_CTX_get_quiet_shutdown,
SSL_set_quiet_shutdown, SSL_get_quiet_shutdown - manipulate shutdown
behaviour

</P>
<P>
<HR>
<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1>
<PRE> #include &lt;openssl/ssl.h&gt;
</PRE>
<PRE> void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode);
 int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx);
</PRE>
<PRE> void SSL_set_quiet_shutdown(SSL *ssl, int mode);
 int SSL_get_quiet_shutdown(const SSL *ssl);
</PRE>
<P>
<HR>
<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1>
<P>
<CODE>SSL_CTX_set_quiet_shutdown()</CODE> sets the ``quiet shutdown'' flag
for <STRONG>ctx</STRONG> to be
<STRONG>mode</STRONG>. SSL objects created from <STRONG>ctx</STRONG> inherit the <STRONG>mode</STRONG> valid at the time
<A HREF="../ssl/SSL_new.html#">SSL_new(3)</A> is called. <STRONG>mode</STRONG> may be 0 or 1.

</P>
<P>
<CODE>SSL_CTX_get_quiet_shutdown()</CODE> returns the ``quiet shutdown''
setting of <STRONG>ctx</STRONG>.

</P>
<P>
<CODE>SSL_set_quiet_shutdown()</CODE> sets the ``quiet shutdown'' flag for <STRONG>ssl</STRONG> to be
<STRONG>mode</STRONG>. The setting stays valid until <STRONG>ssl</STRONG> is removed with
<A HREF="../ssl/SSL_free.html#">SSL_free(3)</A> or <CODE>SSL_set_quiet_shutdown()</CODE> is called again. It is not changed
when <A HREF="../ssl/SSL_clear.html#">SSL_clear(3)</A> is called.
<STRONG>mode</STRONG> may be 0 or 1.

</P>
<P>
<CODE>SSL_get_quiet_shutdown()</CODE> returns the ``quiet shutdown''
setting of <STRONG>ssl</STRONG>.

</P>
<P>
<HR>
<H1><A NAME="NOTES">NOTES</A></H1>
<P>
Normally when a SSL connection is finished, the parties must send out
``close notify'' alert messages using <A HREF="../ssl/SSL_shutdown.html#">SSL_shutdown(3)</A>
for a clean shutdown.

</P>
<P>
When setting the ``quiet shutdown'' flag to 1, <A HREF="../ssl/SSL_shutdown.html#">SSL_shutdown(3)</A>
will set the internal flags to SSL_SENT_SHUTDOWN|SSL_RECEIVED_SHUTDOWN. (<A HREF="../ssl/SSL_shutdown.html#">SSL_shutdown(3)</A> then behaves like
<A HREF="../ssl/SSL_set_shutdown.html#">SSL_set_shutdown(3)</A> called with SSL_SENT_SHUTDOWN|SSL_RECEIVED_SHUTDOWN.) The session is thus
considered to be shutdown, but no ``close notify'' alert is sent to the
peer. This behaviour violates the TLS standard.

</P>
<P>
The default is normal shutdown behaviour as described by the TLS standard.

</P>
<P>
<HR>
<H1><A NAME="RETURN_VALUES">RETURN VALUES</A></H1>
<P>
<CODE>SSL_CTX_set_quiet_shutdown()</CODE> and
<CODE>SSL_set_quiet_shutdown()</CODE> do not return diagnostic information.

</P>
<P>
<CODE>SSL_CTX_get_quiet_shutdown()</CODE> and SSL_get_quiet_shutdown return
the current setting.

</P>
<P>
<HR>
<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1>
<P>
<A HREF="../ssl/ssl.html#">ssl(3)</A>, <A HREF="../ssl/SSL_shutdown.html#">SSL_shutdown(3)</A>,
<A HREF="../ssl/SSL_set_shutdown.html#">SSL_set_shutdown(3)</A>, <A HREF="../ssl/SSL_new.html#">SSL_new(3)</A>,
<A HREF="../ssl/SSL_clear.html#">SSL_clear(3)</A>, <A HREF="../ssl/SSL_free.html#">SSL_free(3)</A>



</P>
:}

