=pod

=head1 NAME

SSL_get_fd - get file descriptor linked to an SSL object

=head1 SYNOPSIS

 #include <openssl/ssl.h>

 int SSL_get_fd(const SSL *ssl);
 int SSL_get_rfd(const SSL *ssl);
 int SSL_get_wfd(const SSL *ssl);

=head1 DESCRIPTION

SSL_get_fd() returns the file descriptor which is linked to B<ssl>.
SSL_get_rfd() and SSL_get_wfd() return the file descriptors for the
read or the write channel, which can be different. If the read and the
write channel are different, SSL_get_fd() will return the file descriptor
of the read channel.

=head1 RETURN VALUES

The following return values can occur:

=over 4

=item -1

The operation failed, because the underlying BIO is not of the correct type
(suitable for file descriptors).

=item E<gt>=0

The file descriptor linked to B<ssl>.

=back

=head1 SEE ALSO

L<SSL_set_fd(3)|SSL_set_fd(3)>, L<ssl(3)|ssl(3)> , L<bio(3)|bio(3)>

=cut
