X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=doc%2Fssl%2FSSL_clear.pod;h=ba192bd518aebed9e3a4089be7b5cab49ef6371d;hb=646e8c1d6b30a2ed080ce5b968b49d234b42644f;hp=862fd8291df18dcd4adc19077d3fcdee76e3e1ac;hpb=c6def253b45b50a0d87ae7768db523c4a32e8517;p=oweals%2Fopenssl.git diff --git a/doc/ssl/SSL_clear.pod b/doc/ssl/SSL_clear.pod index 862fd8291d..ba192bd518 100644 --- a/doc/ssl/SSL_clear.pod +++ b/doc/ssl/SSL_clear.pod @@ -13,8 +13,42 @@ SSL_clear - reset SSL object to allow another connection =head1 DESCRIPTION Reset B to allow another connection. All settings (method, ciphers, -BIOs) are kept. A completely negotiated B is not freed but left -untouched for the underlying B. +BIOs) are kept. + +=head1 NOTES + +SSL_clear is used to prepare an SSL object for a new connection. While all +settings are kept, a side effect is the handling of the current SSL session. +If a session is still B, it is considered bad and will be removed +from the session cache, as required by RFC2246. A session is considered open, +if L was not called for the connection +or at least L was used to +set the SSL_SENT_SHUTDOWN state. + +If a session was closed cleanly, the session object will be kept and all +settings corresponding. This explicitly means, that e.g. the special method +used during the session will be kept for the next handshake. So if the +session was a TLSv1 session, a SSL client object will use a TLSv1 client +method for the next handshake and a SSL server object will use a TLSv1 +server method, even if SSLv23_*_methods were chosen on startup. This +will might lead to connection failures (see L) +for a description of the method's properties. + +=head1 WARNINGS + +SSL_clear() resets the SSL object to allow for another connection. The +reset operation however keeps several settings of the last sessions +(some of these settings were made automatically during the last +handshake). It only makes sense for a new connection with the exact +same peer that shares these settings, and may fail if that peer +changes its settings between connections. Use the sequence +L; +L; +L; +L +instead to avoid such failures +(or simply L; L +if session reuse is not desired). =head1 RETURN VALUES @@ -22,18 +56,20 @@ The following return values can occur: =over 4 -=item 0 +=item Z<>0 The SSL_clear() operation could not be performed. Check the error stack to find out the reason. -=item 1 +=item Z<>1 The SSL_clear() operation was successful. =back L, L, -L +L, L, +L, L, +L =cut