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

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

<h1>SSL_set_bio(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="#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_set_bio - connect the SSL object with a BIO

</P>
<P>
<HR>
<H1><A NAME="SYNOPSIS">SYNOPSIS</A></H1>
<PRE> #include &lt;openssl/ssl.h&gt;
</PRE>
<PRE> void SSL_set_bio(SSL *ssl, BIO *rbio, BIO *wbio);
</PRE>
<P>
<HR>
<H1><A NAME="DESCRIPTION">DESCRIPTION</A></H1>
<P>
<CODE>SSL_set_bio()</CODE> connects the BIOs <STRONG>rbio</STRONG> and <STRONG>wbio</STRONG> for the read and write operations of the TLS/SSL (encrypted) side of <STRONG>ssl</STRONG>.

</P>
<P>
The SSL engine inherits the behaviour of <STRONG>rbio</STRONG> and <STRONG>wbio</STRONG>, respectively. If a BIO is non-blocking, the <STRONG>ssl</STRONG> will also have non-blocking behaviour.

</P>
<P>
If there was already a BIO connected to <STRONG>ssl</STRONG>, <CODE>BIO_free()</CODE> will be called (for both the reading and writing
side, if different).

</P>
<P>
<HR>
<H1><A NAME="RETURN_VALUES">RETURN VALUES</A></H1>
<P>
<CODE>SSL_set_bio()</CODE> cannot fail.

</P>
<P>
<HR>
<H1><A NAME="SEE_ALSO">SEE ALSO</A></H1>
<P>
<A HREF="../ssl/SSL_get_rbio.html#">SSL_get_rbio(3)</A>,
<A HREF="../ssl/SSL_connect.html#">SSL_connect(3)</A>, <A HREF="../ssl/SSL_accept.html#">SSL_accept(3)</A>,
<A HREF="../ssl/SSL_shutdown.html#">SSL_shutdown(3)</A>, <A HREF="../ssl/ssl.html#">ssl(3)</A>, <A HREF="../crypto/bio.html#">bio(3)</A>



</P>
:}


