|  | =pod | 
|  |  | 
|  | =head1 NAME | 
|  |  | 
|  | SSL_set_fd - connect the SSL object with a file descriptor | 
|  |  | 
|  | =head1 SYNOPSIS | 
|  |  | 
|  | #include <openssl/ssl.h> | 
|  |  | 
|  | int SSL_set_fd(SSL *ssl, int fd); | 
|  | int SSL_set_rfd(SSL *ssl, int fd); | 
|  | int SSL_set_wfd(SSL *ssl, int fd); | 
|  |  | 
|  | =head1 DESCRIPTION | 
|  |  | 
|  | SSL_set_fd() sets the file descriptor B<fd> as the input/output facility | 
|  | for the TLS/SSL (encrypted) side of B<ssl>. B<fd> will typically be the | 
|  | socket file descriptor of a network connection. | 
|  |  | 
|  | When performing the operation, a B<socket BIO> is automatically created to | 
|  | interface between the B<ssl> and B<fd>. The BIO and hence the SSL engine | 
|  | inherit the behaviour of B<fd>. If B<fd> is non-blocking, the B<ssl> will | 
|  | also have non-blocking behaviour. | 
|  |  | 
|  | If there was already a BIO connected to B<ssl>, BIO_free() will be called | 
|  | (for both the reading and writing side, if different). | 
|  |  | 
|  | SSL_set_rfd() and SSL_set_wfd() perform the respective action, but only | 
|  | for the read channel or the write channel, which can be set independently. | 
|  |  | 
|  | =head1 RETURN VALUES | 
|  |  | 
|  | The following return values can occur: | 
|  |  | 
|  | =over 4 | 
|  |  | 
|  | =item 0 | 
|  |  | 
|  | The operation failed. Check the error stack to find out why. | 
|  |  | 
|  | =item 1 | 
|  |  | 
|  | The operation succeeded. | 
|  |  | 
|  | =back | 
|  |  | 
|  | =head1 SEE ALSO | 
|  |  | 
|  | L<SSL_get_fd(3)|SSL_get_fd(3)>, L<SSL_set_bio(3)|SSL_set_bio(3)>, | 
|  | L<SSL_connect(3)|SSL_connect(3)>, L<SSL_accept(3)|SSL_accept(3)>, | 
|  | L<SSL_shutdown(3)|SSL_shutdown(3)>, L<ssl(3)|ssl(3)> , L<bio(3)|bio(3)> | 
|  |  | 
|  | =cut |