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. More... | |
virtual int | read (char *buf, int size, BIO *table) |
Reads data from socket. More... | |
virtual void | flush (BIO *) |
int | fd () const |
The SSL socket descriptor. More... | |
virtual void | stateChanged (const SSL *ssl, int where, int ret) |
const SBuf & | rBufData () |
The buffered input data. More... | |
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() More... | |
Protected Attributes | |
const int | fd_ |
the SSL socket we are reading and writing More... | |
SBuf | rbuf |
Used to buffer input data. More... | |
Detailed Description
Constructor & Destructor Documentation
◆ Bio()
|
explicit |
◆ ~Bio()
Member Function Documentation
◆ Create()
|
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 62 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().
◆ fd()
|
inline |
Definition at line 49 of file bio.h.
References fd_.
Referenced by Create(), Security::NegotiationHistory::retrieveNegotiatedInfo(), and squid_bio_ctrl().
◆ flush()
|
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().
◆ Link()
|
static |
◆ rBufData()
|
inline |
Definition at line 61 of file bio.h.
References rbuf.
Referenced by Ssl::PeekingPeerConnector::initialize().
◆ read()
Reimplemented in Ssl::ClientBio, and Ssl::ServerBio.
Definition at line 127 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().
◆ stateChanged()
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 152 of file bio.cc.
References debugs.
Referenced by Ssl::ClientBio::stateChanged(), and Ssl::ServerBio::stateChanged().
◆ write()
Reimplemented in Ssl::ClientBio, and Ssl::ServerBio.
Definition at line 104 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().
Member Data Documentation
◆ fd_
|
protected |
◆ rbuf
|
protected |
Definition at line 64 of file bio.h.
Referenced by rBufData(), and Ssl::ClientBio::setReadBufData().
The documentation for this class was generated from the following files: