X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=lib%2Fopenssl%2Fdoc%2Fssl%2FSSL_set_bio.pod;h=e8e55f464805af3851fcb8dd4a8e3c5e8462cc5c;hb=02ed66432c92de70694700164f986190aad3cbc5;hp=67c9756d3fe5ee77a1b9d1ae89592890c0c12482;hpb=9ff1530871deeb0f7eaa35ca0db6630724045e4a;p=cassiopeia.git diff --git a/lib/openssl/doc/ssl/SSL_set_bio.pod b/lib/openssl/doc/ssl/SSL_set_bio.pod index 67c9756..e8e55f4 100644 --- a/lib/openssl/doc/ssl/SSL_set_bio.pod +++ b/lib/openssl/doc/ssl/SSL_set_bio.pod @@ -2,33 +2,107 @@ =head1 NAME -SSL_set_bio - connect the SSL object with a BIO +SSL_set_bio, SSL_set0_rbio, SSL_set0_wbio - connect the SSL object with a BIO =head1 SYNOPSIS #include void SSL_set_bio(SSL *ssl, BIO *rbio, BIO *wbio); + void SSL_set0_rbio(SSL *s, BIO *rbio); + void SSL_set0_wbio(SSL *s, BIO *wbio); =head1 DESCRIPTION -SSL_set_bio() connects the BIOs B and B for the read and write -operations of the TLS/SSL (encrypted) side of B. +SSL_set0_rbio() connects the BIO B for the read operations of the B +object. The SSL engine inherits the behaviour of B. If the BIO is +non-blocking then the B object will also have non-blocking behaviour. This +function transfers ownership of B to B. It will be automatically +freed using L when the B is freed. On calling this +function, any existing B that was previously set will also be freed via a +call to L (this includes the case where the B is set to +the same value as previously). -The SSL engine inherits the behaviour of B and B, respectively. -If a BIO is non-blocking, the B will also have non-blocking behaviour. +SSL_set0_wbio() works in the same as SSL_set0_rbio() except that it connects +the BIO B for the write operations of the B object. Note that if the +rbio and wbio are the same then SSL_set0_rbio() and SSL_set0_wbio() each take +ownership of one reference. Therefore it may be necessary to increment the +number of references available using L before calling the set0 +functions. -If there was already a BIO connected to B, BIO_free() will be called -(for both the reading and writing side, if different). +SSL_set_bio() does a similar job as SSL_set0_rbio() and SSL_set0_wbio() except +that it connects both the B and the B at the same time. This +function transfers the ownership of B and B to B except that +the rules for this are much more complex. For this reason this function is +considered a legacy function and SSL_set0_rbio() and SSL_set0_wbio() should be +used in preference. The ownership rules are as follows: + +=over 4 + +=item + +If neither the rbio or wbio have changed from their previous values then nothing +is done. + +=item + +If the rbio and wbio parameters are different and both are different to their +previously set values then one reference is consumed for the rbio and one +reference is consumed for the wbio. + +=item + +If the rbio and wbio parameters are the same and the rbio is not the same as the +previously set value then one reference is consumed. + +=item + +If the rbio and wbio parameters are the same and the rbio is the same as the +previously set value, then no additional references are consumed. + +=item + +If the rbio and wbio parameters are different and the rbio is the same as the +previously set value then one reference is consumbed for the wbio and no +references are consumed for the rbio. + +=item + +If the rbio and wbio parameters are different and the wbio is the same as the +previously set value and the old rbio and wbio values were the same as each +other then one reference is consumed for the rbio and no references are consumed +for the wbio. + +=item + +If the rbio and wbio parameters are different and the wbio is the same as the +previously set value and the old rbio and wbio values were different to each +other then one reference is consumed for the rbio and one reference is consumed +for the wbio. + +=back =head1 RETURN VALUES -SSL_set_bio() cannot fail. +SSL_set_bio(), SSL_set_rbio() and SSL_set_wbio() cannot fail. =head1 SEE ALSO -L, -L, L, -L, L, L +L, +L, L, +L, L, L + +=head1 HISTORY + +SSL_set0_rbio() and SSL_set0_wbio() were added in OpenSSL 1.1.0. + +=head1 COPYRIGHT + +Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +L. =cut