Commit manual pages after running 'man-update' and add new manual pages.
[dragonfly.git] / secure / lib / libcrypto / man / BIO_f_ssl.3
index 7c5117b..f0e90db 100644 (file)
@@ -1,9 +1,9 @@
-.\" Automatically generated by Pod::Man version 1.15
-.\" Wed Feb 19 16:42:43 2003
-.\"
-.\" Standard preamble:
-.\" ======================================================================
-.de Sh \" Subsection heading
+.rn '' }`
+''' $RCSfile$$Revision$$Date$
+'''
+''' $Log$
+'''
+.de Sh
 .br
 .if t .Sp
 .ne 5
 \fB\\$1\fR
 .PP
 ..
-.de Sp \" Vertical space (when we can't use .PP)
+.de Sp
 .if t .sp .5v
 .if n .sp
 ..
-.de Ip \" List item
+.de Ip
 .br
 .ie \\n(.$>=3 .ne \\$3
 .el .ne 3
 .IP "\\$1" \\$2
 ..
-.de Vb \" Begin verbatim text
+.de Vb
 .ft CW
 .nf
 .ne \\$1
 ..
-.de Ve \" End verbatim text
+.de Ve
 .ft R
 
 .fi
 ..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used
-.\" to do unbreakable dashes and therefore won't be available.  \*(C` and
-.\" \*(C' expand to `' in nroff, nothing in troff, for use with C<>
+'''
+'''
+'''     Set up \*(-- to give an unbreakable dash;
+'''     string Tr holds user defined translation string.
+'''     Bell System Logo is used as a dummy character.
+'''
 .tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
+.ds -- \(*W-
+.ds PI pi
+.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+.ds L" ""
+.ds R" ""
+'''   \*(M", \*(S", \*(N" and \*(T" are the equivalent of
+'''   \*(L" and \*(R", except that they are used on ".xx" lines,
+'''   such as .IP and .SH, which do another additional levels of
+'''   double-quote interpretation
+.ds M" """
+.ds S" """
+.ds N" """""
+.ds T" """""
+.ds L' '
+.ds R' '
+.ds M' '
+.ds S' '
+.ds N' '
+.ds T' '
 'br\}
 .el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
+.ds -- \(em\|
+.tr \*(Tr
+.ds L" ``
+.ds R" ''
+.ds M" ``
+.ds S" ''
+.ds N" ``
+.ds T" ''
+.ds L' `
+.ds R' '
+.ds M' `
+.ds S' '
+.ds N' `
+.ds T' '
+.ds PI \(*p
 'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr
-.\" for titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and
-.\" index entries marked with X<> in POD.  Of course, you'll have to process
-.\" the output yourself in some meaningful fashion.
-.if \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
+.\"    If the F register is turned on, we'll generate
+.\"    index entries out stderr for the following things:
+.\"            TH      Title 
+.\"            SH      Header
+.\"            Sh      Subsection 
+.\"            Ip      Item
+.\"            X<>     Xref  (embedded
+.\"    Of course, you have to process the output yourself
+.\"    in some meaninful fashion.
+.if \nF \{
+.de IX
+.tm Index:\\$1\t\\n%\t"\\$2"
 ..
-.    nr % 0
-.    rr F
+.nr % 0
+.rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it
-.\" makes way too many mistakes in technical documents.
-.hy 0
+.TH BIO_f_ssl 3 "0.9.7d" "2/Sep/2004" "OpenSSL"
+.UC
+.if n .hy 0
 .if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.de CQ          \" put $1 in typewriter font
+.ft CW
+'if n "\c
+'if t \\&\\$1\c
+'if n \\&\\$1\c
+'if n \&"
+\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
+'.ft R
+..
+.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
+.      \" AM - accent mark definitions
 .bd B 3
-.    \" fudge factors for nroff and troff
+.      \" fudge factors for nroff and troff
 .if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
+.      ds #H 0
+.      ds #V .8m
+.      ds #F .3m
+.      ds #[ \f1
+.      ds #] \fP
 .\}
 .if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
+.      ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+.      ds #V .6m
+.      ds #F 0
+.      ds #[ \&
+.      ds #] \&
 .\}
-.    \" simple accents for nroff and troff
+.      \" simple accents for nroff and troff
 .if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
+.      ds ' \&
+.      ds ` \&
+.      ds ^ \&
+.      ds , \&
+.      ds ~ ~
+.      ds ? ?
+.      ds ! !
+.      ds /
+.      ds q
 .\}
 .if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.      ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+.      ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+.      ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+.      ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+.      ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+.      ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10'
+.      ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m'
+.      ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.      ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10'
 .\}
-.    \" troff and (daisy-wheel) nroff accents
+.      \" troff and (daisy-wheel) nroff accents
 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#]
+.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u'
+.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u'
+.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#]
 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
 .ds ae a\h'-(\w'a'u*4/10)'e
 .ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
+.ds oe o\h'-(\w'o'u*4/10)'e
+.ds Oe O\h'-(\w'O'u*4/10)'E
+.      \" corrections for vroff
 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
+.      \" for low resolution devices (crt and lpr)
 .if \n(.H>23 .if \n(.V>19 \
 \{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
+.      ds : e
+.      ds 8 ss
+.      ds v \h'-1'\o'\(aa\(ga'
+.      ds _ \h'-1'^
+.      ds . \h'-1'.
+.      ds 3 3
+.      ds o a
+.      ds d- d\h'-1'\(ga
+.      ds D- D\h'-1'\(hy
+.      ds th \o'bp'
+.      ds Th \o'LP'
+.      ds ae ae
+.      ds Ae AE
+.      ds oe oe
+.      ds Oe OE
 .\}
 .rm #[ #] #H #V #F C
-.\" ======================================================================
-.\"
-.IX Title "BIO_f_ssl 3"
-.TH BIO_f_ssl 3 "0.9.7a" "2003-02-19" "OpenSSL"
-.UC
 .SH "NAME"
 BIO_f_ssl, BIO_set_ssl, BIO_get_ssl, BIO_set_ssl_mode, BIO_set_ssl_renegotiate_bytes,
 BIO_get_num_renegotiates, BIO_set_ssl_renegotiate_timeout, BIO_new_ssl,
 BIO_new_ssl_connect, BIO_new_buffer_ssl_connect, BIO_ssl_copy_session_id,
-BIO_ssl_shutdown \- \s-1SSL\s0 \s-1BIO\s0
+BIO_ssl_shutdown \- SSL BIO
 .SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
+.PP
 .Vb 2
 \& #include <openssl/bio.h>
 \& #include <openssl/ssl.h>
@@ -176,102 +223,98 @@ BIO_ssl_shutdown \- \s-1SSL\s0 \s-1BIO\s0
 \& #define BIO_do_handshake(b)    BIO_ctrl(b,BIO_C_DO_STATE_MACHINE,0,NULL)
 .Ve
 .SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fIBIO_f_ssl()\fR returns the \s-1SSL\s0 \s-1BIO\s0 method. This is a filter \s-1BIO\s0 which
-is a wrapper round the OpenSSL \s-1SSL\s0 routines adding a \s-1BIO\s0 \*(L"flavour\*(R" to
-\&\s-1SSL\s0 I/O. 
+\fIBIO_f_ssl()\fR returns the SSL BIO method. This is a filter BIO which
+is a wrapper round the OpenSSL SSL routines adding a BIO \*(L"flavour\*(R" to
+SSL I/O. 
 .PP
-I/O performed on an \s-1SSL\s0 \s-1BIO\s0 communicates using the \s-1SSL\s0 protocol with
-the SSLs read and write BIOs. If an \s-1SSL\s0 connection is not established
+I/O performed on an SSL BIO communicates using the SSL protocol with
+the SSLs read and write BIOs. If an SSL connection is not established
 then an attempt is made to establish one on the first I/O call.
 .PP
-If a \s-1BIO\s0 is appended to an \s-1SSL\s0 \s-1BIO\s0 using \fIBIO_push()\fR it is automatically
-used as the \s-1SSL\s0 BIOs read and write BIOs.
+If a BIO is appended to an SSL BIO using \fIBIO_push()\fR it is automatically
+used as the SSL BIOs read and write BIOs.
 .PP
-Calling \fIBIO_reset()\fR on an \s-1SSL\s0 \s-1BIO\s0 closes down any current \s-1SSL\s0 connection
-by calling \fISSL_shutdown()\fR. \fIBIO_reset()\fR is then sent to the next \s-1BIO\s0 in
+Calling \fIBIO_reset()\fR on an SSL BIO closes down any current SSL connection
+by calling \fISSL_shutdown()\fR. \fIBIO_reset()\fR is then sent to the next BIO in
 the chain: this will typically disconnect the underlying transport.
-The \s-1SSL\s0 \s-1BIO\s0 is then reset to the initial accept or connect state.
+The SSL BIO is then reset to the initial accept or connect state.
 .PP
-If the close flag is set when an \s-1SSL\s0 \s-1BIO\s0 is freed then the internal
-\&\s-1SSL\s0 structure is also freed using \fISSL_free()\fR.
+If the close flag is set when an SSL BIO is freed then the internal
+SSL structure is also freed using \fISSL_free()\fR.
 .PP
-\&\fIBIO_set_ssl()\fR sets the internal \s-1SSL\s0 pointer of \s-1BIO\s0 \fBb\fR to \fBssl\fR using
+\fIBIO_set_ssl()\fR sets the internal SSL pointer of BIO \fBb\fR to \fBssl\fR using
 the close flag \fBc\fR.
 .PP
-\&\fIBIO_get_ssl()\fR retrieves the \s-1SSL\s0 pointer of \s-1BIO\s0 \fBb\fR, it can then be
-manipulated using the standard \s-1SSL\s0 library functions.
+\fIBIO_get_ssl()\fR retrieves the SSL pointer of BIO \fBb\fR, it can then be
+manipulated using the standard SSL library functions.
 .PP
-\&\fIBIO_set_ssl_mode()\fR sets the \s-1SSL\s0 \s-1BIO\s0 mode to \fBclient\fR. If \fBclient\fR
+\fIBIO_set_ssl_mode()\fR sets the SSL BIO mode to \fBclient\fR. If \fBclient\fR
 is 1 client mode is set. If \fBclient\fR is 0 server mode is set.
 .PP
-\&\fIBIO_set_ssl_renegotiate_bytes()\fR sets the renegotiate byte count
+\fIBIO_set_ssl_renegotiate_bytes()\fR sets the renegotiate byte count
 to \fBnum\fR. When set after every \fBnum\fR bytes of I/O (read and write) 
-the \s-1SSL\s0 session is automatically renegotiated. \fBnum\fR must be at
+the SSL session is automatically renegotiated. \fBnum\fR must be at
 least 512 bytes.
 .PP
-\&\fIBIO_set_ssl_renegotiate_timeout()\fR sets the renegotiate timeout to
-\&\fBseconds\fR. When the renegotiate timeout elapses the session is
+\fIBIO_set_ssl_renegotiate_timeout()\fR sets the renegotiate timeout to
+\fBseconds\fR. When the renegotiate timeout elapses the session is
 automatically renegotiated.
 .PP
-\&\fIBIO_get_num_renegotiates()\fR returns the total number of session
+\fIBIO_get_num_renegotiates()\fR returns the total number of session
 renegotiations due to I/O or timeout.
 .PP
-\&\fIBIO_new_ssl()\fR allocates an \s-1SSL\s0 \s-1BIO\s0 using \s-1SSL_CTX\s0 \fBctx\fR and using
+\fIBIO_new_ssl()\fR allocates an SSL BIO using SSL_CTX \fBctx\fR and using
 client mode if \fBclient\fR is non zero.
 .PP
-\&\fIBIO_new_ssl_connect()\fR creates a new \s-1BIO\s0 chain consisting of an
-\&\s-1SSL\s0 \s-1BIO\s0 (using \fBctx\fR) followed by a connect \s-1BIO\s0.
+\fIBIO_new_ssl_connect()\fR creates a new BIO chain consisting of an
+SSL BIO (using \fBctx\fR) followed by a connect BIO.
 .PP
-\&\fIBIO_new_buffer_ssl_connect()\fR creates a new \s-1BIO\s0 chain consisting
-of a buffering \s-1BIO\s0, an \s-1SSL\s0 \s-1BIO\s0 (using \fBctx\fR) and a connect
-\&\s-1BIO\s0.
+\fIBIO_new_buffer_ssl_connect()\fR creates a new BIO chain consisting
+of a buffering BIO, an SSL BIO (using \fBctx\fR) and a connect
+BIO.
 .PP
-\&\fIBIO_ssl_copy_session_id()\fR copies an \s-1SSL\s0 session id between 
-\&\s-1BIO\s0 chains \fBfrom\fR and \fBto\fR. It does this by locating the
-\&\s-1SSL\s0 BIOs in each chain and calling \fISSL_copy_session_id()\fR on
-the internal \s-1SSL\s0 pointer.
+\fIBIO_ssl_copy_session_id()\fR copies an SSL session id between 
+BIO chains \fBfrom\fR and \fBto\fR. It does this by locating the
+SSL BIOs in each chain and calling \fISSL_copy_session_id()\fR on
+the internal SSL pointer.
 .PP
-\&\fIBIO_ssl_shutdown()\fR closes down an \s-1SSL\s0 connection on \s-1BIO\s0
-chain \fBbio\fR. It does this by locating the \s-1SSL\s0 \s-1BIO\s0 in the
-chain and calling \fISSL_shutdown()\fR on its internal \s-1SSL\s0
+\fIBIO_ssl_shutdown()\fR closes down an SSL connection on BIO
+chain \fBbio\fR. It does this by locating the SSL BIO in the
+chain and calling \fISSL_shutdown()\fR on its internal SSL
 pointer.
 .PP
-\&\fIBIO_do_handshake()\fR attempts to complete an \s-1SSL\s0 handshake on the
-supplied \s-1BIO\s0 and establish the \s-1SSL\s0 connection. It returns 1
+\fIBIO_do_handshake()\fR attempts to complete an SSL handshake on the
+supplied BIO and establish the SSL connection. It returns 1
 if the connection was established successfully. A zero or negative
 value is returned if the connection could not be established, the
 call \fIBIO_should_retry()\fR should be used for non blocking connect BIOs
-to determine if the call should be retried. If an \s-1SSL\s0 connection has
+to determine if the call should be retried. If an SSL connection has
 already been established this call has no effect.
 .SH "NOTES"
-.IX Header "NOTES"
-\&\s-1SSL\s0 BIOs are exceptional in that if the underlying transport
+SSL BIOs are exceptional in that if the underlying transport
 is non blocking they can still request a retry in exceptional
 circumstances. Specifically this will happen if a session
 renegotiation takes place during a \fIBIO_read()\fR operation, one
-case where this happens is when \s-1SGC\s0 or step up occurs.
+case where this happens is when SGC or step up occurs.
 .PP
-In OpenSSL 0.9.6 and later the \s-1SSL\s0 flag \s-1SSL_AUTO_RETRY\s0 can be
+In OpenSSL 0.9.6 and later the SSL flag SSL_AUTO_RETRY can be
 set to disable this behaviour. That is when this flag is set
-an \s-1SSL\s0 \s-1BIO\s0 using a blocking transport will never request a
+an SSL BIO using a blocking transport will never request a
 retry.
 .PP
 Since unknown \fIBIO_ctrl()\fR operations are sent through filter
 BIOs the servers name and port can be set using \fIBIO_set_host()\fR
-on the \s-1BIO\s0 returned by \fIBIO_new_ssl_connect()\fR without having
-to locate the connect \s-1BIO\s0 first.
+on the BIO returned by \fIBIO_new_ssl_connect()\fR without having
+to locate the connect BIO first.
 .PP
 Applications do not have to call \fIBIO_do_handshake()\fR but may wish
 to do so to separate the handshake process from other I/O
 processing.
 .SH "RETURN VALUES"
-.IX Header "RETURN VALUES"
-\&\s-1TBA\s0
+TBA
 .SH "EXAMPLE"
-.IX Header "EXAMPLE"
-This \s-1SSL/TLS\s0 client example, attempts to retrieve a page from an
-\&\s-1SSL/TLS\s0 web server. The I/O routines are identical to those of the
+This SSL/TLS client example, attempts to retrieve a page from an
+SSL/TLS web server. The I/O routines are identical to those of the
 unencrypted example in BIO_s_connect(3).
 .PP
 .Vb 5
@@ -351,7 +394,7 @@ unencrypted example in BIO_s_connect(3).
 \& BIO_free(out);
 .Ve
 Here is a simple server example. It makes use of a buffering
-\&\s-1BIO\s0 to allow lines to be read from the \s-1SSL\s0 \s-1BIO\s0 using BIO_gets.
+BIO to allow lines to be read from the SSL BIO using BIO_gets.
 It creates a pseudo web page containing the actual request from
 a client and also echoes the request to standard output.
 .PP
@@ -419,14 +462,13 @@ a client and also echoes the request to standard output.
 .Vb 1
 \& acpt=BIO_new_accept("4433");
 .Ve
-.Vb 5
+.Vb 7
 \& /* By doing this when a new connection is established
 \&  * we automatically have sbio inserted into it. The
 \&  * BIO chain is now 'swallowed' by the accept BIO and
 \&  * will be freed when the accept BIO is freed. 
 \&  */
-.Ve
-.Vb 1
+\& 
 \& BIO_set_accept_bios(acpt,sbio);
 .Ve
 .Vb 1
@@ -467,8 +509,8 @@ a client and also echoes the request to standard output.
 \& }
 .Ve
 .Vb 3
-\& BIO_puts(sbio, "HTTP/1.0 200 OK\er\enContent-type: text/html\er\en\er\en");
-\& BIO_puts(sbio, "<pre>\er\enConnection Established\er\enRequest headers:\er\en");
+\& BIO_puts(sbio, "HTTP/1.0 200 OK\er\enContent-type: text/plain\er\en\er\en");
+\& BIO_puts(sbio, "\er\enConnection Established\er\enRequest headers:\er\en");
 \& BIO_puts(sbio, "--------------------------------------------------\er\en");
 .Ve
 .Vb 8
@@ -483,7 +525,7 @@ a client and also echoes the request to standard output.
 .Ve
 .Vb 2
 \& BIO_puts(sbio, "--------------------------------------------------\er\en");
-\& BIO_puts(sbio, "</pre>\er\en");
+\& BIO_puts(sbio, "\er\en");
 .Ve
 .Vb 2
 \& /* Since there is a buffering BIO present we had better flush it */
@@ -493,5 +535,26 @@ a client and also echoes the request to standard output.
 \& BIO_free_all(sbio);
 .Ve
 .SH "SEE ALSO"
+TBA
+
+.rn }` ''
+.IX Title "BIO_f_ssl 3"
+.IX Name "BIO_f_ssl, BIO_set_ssl, BIO_get_ssl, BIO_set_ssl_mode, BIO_set_ssl_renegotiate_bytes,
+BIO_get_num_renegotiates, BIO_set_ssl_renegotiate_timeout, BIO_new_ssl,
+BIO_new_ssl_connect, BIO_new_buffer_ssl_connect, BIO_ssl_copy_session_id,
+BIO_ssl_shutdown - SSL BIO"
+
+.IX Header "NAME"
+
+.IX Header "SYNOPSIS"
+
+.IX Header "DESCRIPTION"
+
+.IX Header "NOTES"
+
+.IX Header "RETURN VALUES"
+
+.IX Header "EXAMPLE"
+
 .IX Header "SEE ALSO"
-\&\s-1TBA\s0
+