=pod

=head1 NAME

SSL_pending - obtain number of readable bytes buffered in an SSL object

=head1 SYNOPSIS

 #include <openssl/ssl.h>

 int SSL_pending(const SSL *ssl);

=head1 DESCRIPTION

SSL_pending() returns the number of bytes which are available inside
B<ssl> for immediate read.

=head1 NOTES

Data are received in blocks from the peer. Therefore data can be buffered
inside B<ssl> and are ready for immediate retrieval with
L<SSL_read(3)|SSL_read(3)>.

=head1 RETURN VALUES

The number of bytes pending is returned.

=head1 BUGS

SSL_pending() takes into account only bytes from the TLS/SSL record
that is currently being processed (if any).  If the B<SSL> object's
I<read_ahead> flag is set (see
L<SSL_CTX_set_read_ahead(3)|SSL_CTX_set_read_ahead(3)>), additional protocol
bytes may have been read containing more TLS/SSL records; these are ignored by
SSL_pending().

Up to OpenSSL 0.9.6, SSL_pending() does not check if the record type
of pending data is application data.

=head1 SEE ALSO

L<SSL_read(3)|SSL_read(3)>,
L<SSL_CTX_set_read_ahead(3)|SSL_CTX_set_read_ahead(3)>, L<ssl(3)|ssl(3)>

=cut
