=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, 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(3)|ssl(3)>

=cut
