|
Squid Web Cache master
|
BIO source and sink node, handling socket I/O and monitoring SSL state. More...
#include <bio.h>
Public Member Functions | |
| Bio (const int anFd) | |
| virtual | ~Bio () |
| virtual int | write (const char *buf, int size, BIO *table) |
| Writes the given data to socket. | |
| virtual int | read (char *buf, int size, BIO *table) |
| Reads data from socket. | |
| virtual void | flush (BIO *) |
| int | fd () const |
| The SSL socket descriptor. | |
| virtual void | stateChanged (const SSL *ssl, int where, int ret) |
| const SBuf & | rBufData () |
| The buffered input data. | |
Static Public Member Functions | |
| static BIO * | Create (const int fd, Security::Io::Type type) |
| static void | Link (SSL *ssl, BIO *bio) |
| Tells ssl connection to use BIO and monitor state via stateChanged() | |
Protected Attributes | |
| const int | fd_ |
| the SSL socket we are reading and writing | |
| SBuf | rbuf |
| Used to buffer input data. | |
|
explicit |
|
static |
Creates a low-level BIO table, creates a high-level Ssl::Bio object for a given socket, and then links the two together via BIO_C_SET_FD.
Definition at line 63 of file bio.cc.
References fd(), squid_bio_create(), squid_bio_ctrl(), squid_bio_destroy(), squid_bio_puts(), squid_bio_read(), squid_bio_write(), and SquidMethods.
Referenced by CreateSession().
|
inline |
Definition at line 49 of file bio.h.
References fd_.
Referenced by Create(), Security::NegotiationHistory::retrieveNegotiatedInfo(), and squid_bio_ctrl().
|
inlinevirtual |
Flushes any buffered data to socket. The Ssl::Bio does not buffer any data, so this method has nothing to do
Reimplemented in Ssl::ServerBio.
Definition at line 47 of file bio.h.
Referenced by squid_bio_ctrl().
|
static |
|
inline |
Definition at line 61 of file bio.h.
References rbuf.
Referenced by Ssl::PeekingPeerConnector::initialize().
Reimplemented in Ssl::ClientBio, and Ssl::ServerBio.
Definition at line 128 of file bio.cc.
References debugs, default_read_method(), ignoreErrno(), and size.
Referenced by Ssl::ClientBio::read(), Ssl::ServerBio::readAndBuffer(), Ssl::ServerBio::readAndGive(), and squid_bio_read().
Called by linked SSL connection whenever state changes, an alert appears, or an error occurs. See SSL_set_info_callback().
Called whenever the SSL connection state changes, an alert appears, or an error occurs. See SSL_set_info_callback().
Reimplemented in Ssl::ClientBio, and Ssl::ServerBio.
Definition at line 153 of file bio.cc.
References asHex(), and debugs.
Referenced by Ssl::ClientBio::stateChanged(), and Ssl::ServerBio::stateChanged().
Reimplemented in Ssl::ClientBio, and Ssl::ServerBio.
Definition at line 105 of file bio.cc.
References debugs, default_write_method(), ignoreErrno(), and size.
Referenced by Ssl::ServerBio::flush(), squid_bio_write(), Ssl::ClientBio::write(), and Ssl::ServerBio::write().
|
protected |
|
protected |
Definition at line 64 of file bio.h.
Referenced by rBufData(), and Ssl::ClientBio::setReadBufData().