#include <P_SSLNetVConnection.h>
Inherits UnixNetVConnection.
Public Member Functions | |
virtual int | sslStartHandShake (int event, int &err) |
virtual void | free (EThread *t) |
virtual void | enableRead () |
virtual bool | getSSLHandShakeComplete () |
void | setSSLHandShakeComplete (bool state) |
virtual bool | getSSLClientConnection () |
virtual void | setSSLClientConnection (bool state) |
int | sslServerHandShakeEvent (int &err) |
int | sslClientHandShakeEvent (int &err) |
virtual void | net_read_io (NetHandler *nh, EThread *lthread) |
virtual int64_t | load_buffer_and_write (int64_t towrite, int64_t &wattempted, int64_t &total_wrote, MIOBufferAccessor &buf, int &needs) |
void | registerNextProtocolSet (const SSLNextProtocolSet *) |
SSLNetVConnection () | |
virtual | ~SSLNetVConnection () |
Continuation * | endpoint () const |
bool | getSSLClientRenegotiationAbort () const |
void | setSSLClientRenegotiationAbort (bool state) |
Static Public Member Functions | |
static int | advertise_next_protocol (SSL *ssl, const unsigned char **out, unsigned *outlen, void *) |
static int | select_next_protocol (SSL *ssl, const unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned inlen, void *) |
Data Fields | |
SSL * | ssl |
ink_hrtime | sslHandshakeBeginTime |
Definition at line 63 of file P_SSLNetVConnection.h.
SSLNetVConnection::SSLNetVConnection | ( | ) |
Definition at line 478 of file SSLNetVConnection.cc.
References ssl, and sslHandshakeBeginTime.
virtual SSLNetVConnection::~SSLNetVConnection | ( | ) | [inline, virtual] |
Definition at line 101 of file P_SSLNetVConnection.h.
static int SSLNetVConnection::advertise_next_protocol | ( | SSL * | ssl, | |
const unsigned char ** | out, | |||
unsigned * | outlen, | |||
void * | ||||
) | [static] |
Referenced by ssl_store_ssl_context().
virtual void SSLNetVConnection::enableRead | ( | ) | [inline, virtual] |
Definition at line 68 of file P_SSLNetVConnection.h.
References NetState::enabled, UnixNetVConnection::read, and UnixNetVConnection::write.
Continuation* SSLNetVConnection::endpoint | ( | ) | const [inline] |
Definition at line 109 of file P_SSLNetVConnection.h.
Referenced by SSLNextProtocolTrampoline::ioCompletionEvent().
void SSLNetVConnection::free | ( | EThread * | t | ) | [virtual] |
Reimplemented from UnixNetVConnection.
Definition at line 490 of file SSLNetVConnection.cc.
References Ptr< T >::clear(), UnixNetVConnection::closed, UnixNetVConnection::con, Connection::fd, UnixNetVConnection::flags, UnixNetVConnection::from_accept_thread, UnixNetVConnection::got_local_addr, NetVConnection::got_remote_addr, ink_assert, Continuation::mutex, VIO::mutex, net_connections_currently_open_stat, NET_SUM_GLOBAL_DYN_STAT, UnixNetVConnection::nh, NO_FD, NetVConnection::options, UnixNetVConnection::read, NetVCOptions::reset(), SET_CONTINUATION_HANDLER, ssl, sslNetVCAllocator, UnixNetVConnection::startEvent(), THREAD_FREE, NetState::triggered, NetState::vio, and UnixNetVConnection::write.
virtual bool SSLNetVConnection::getSSLClientConnection | ( | ) | [inline, virtual] |
Reimplemented from UnixNetVConnection.
Definition at line 81 of file P_SSLNetVConnection.h.
Referenced by net_read_io(), and SSLDiagnostic().
bool SSLNetVConnection::getSSLClientRenegotiationAbort | ( | ) | const [inline] |
Definition at line 113 of file P_SSLNetVConnection.h.
virtual bool SSLNetVConnection::getSSLHandShakeComplete | ( | ) | [inline, virtual] |
Reimplemented from UnixNetVConnection.
Definition at line 73 of file P_SSLNetVConnection.h.
Referenced by net_read_io(), and ssl_callback_info().
int64_t SSLNetVConnection::load_buffer_and_write | ( | int64_t | towrite, | |
int64_t & | wattempted, | |||
int64_t & | total_wrote, | |||
MIOBufferAccessor & | buf, | |||
int & | needs | |||
) | [virtual] |
Reimplemented from UnixNetVConnection.
Definition at line 363 of file SSLNetVConnection.cc.
References IOBufferReader::block, Debug, do_SSL_write(), Thread::mutex, Continuation::mutex, net_calls_to_write_stat, NET_DEBUG_COUNT_DYN_STAT, IOBufferBlock::next, IOBufferBlock::read_avail(), MIOBufferAccessor::reader(), ssl, ssl_error_ssl, ssl_error_syscall, ssl_error_want_read, ssl_error_want_write, ssl_error_want_x509_lookup, ssl_error_zero_return, SSL_INCREMENT_DYN_STAT, SSLConfigParams::ssl_maxrecord, IOBufferBlock::start(), IOBufferReader::start_offset, and this_ethread().
void SSLNetVConnection::net_read_io | ( | NetHandler * | nh, | |
EThread * | lthread | |||
) | [virtual] |
Reimplemented from UnixNetVConnection.
Definition at line 214 of file SSLNetVConnection.cc.
References VIO::_cont, VIO::buffer, Debug, NetState::enabled, EVENT_CONT, EVENT_DONE, EVENT_ERROR, getSSLClientConnection(), getSSLHandShakeComplete(), ink_assert, Ptr< T >::m_ptr, VIO::mutex, MUTEX_TRY_LOCK_FOR, VIO::ntodo(), VIO::op, VIO::READ, UnixNetVConnection::read, read_disable(), UnixNetVConnection::readReschedule(), UnixNetVConnection::readSignalAndUpdate(), UnixNetVConnection::readSignalDone(), UnixNetVConnection::readSignalError(), SSL_EVENT_CLIENT, SSL_EVENT_SERVER, SSL_HANDSHAKE_WANT_ACCEPT, SSL_HANDSHAKE_WANT_CONNECT, SSL_HANDSHAKE_WANT_READ, SSL_HANDSHAKE_WANT_WRITE, SSL_READ_COMPLETE, SSL_READ_EOS, SSL_READ_ERROR, SSL_READ_ERROR_NONE, ssl_read_from_net(), SSL_READ_READY, SSL_READ_WOULD_BLOCK, SSL_WRITE_WOULD_BLOCK, sslStartHandShake(), NetState::triggered, VC_EVENT_EOS, VC_EVENT_READ_COMPLETE, VC_EVENT_READ_READY, NetState::vio, UnixNetVConnection::write, MIOBuffer::write_avail(), MIOBufferAccessor::writer(), and UnixNetVConnection::writeReschedule().
void SSLNetVConnection::registerNextProtocolSet | ( | const SSLNextProtocolSet * | s | ) |
Definition at line 745 of file SSLNetVConnection.cc.
References ink_release_assert.
static int SSLNetVConnection::select_next_protocol | ( | SSL * | ssl, | |
const unsigned char ** | out, | |||
unsigned char * | outlen, | |||
const unsigned char * | in, | |||
unsigned | inlen, | |||
void * | ||||
) | [static] |
Referenced by ssl_store_ssl_context().
virtual void SSLNetVConnection::setSSLClientConnection | ( | bool | state | ) | [inline, virtual] |
Reimplemented from UnixNetVConnection.
Definition at line 85 of file P_SSLNetVConnection.h.
void SSLNetVConnection::setSSLClientRenegotiationAbort | ( | bool | state | ) | [inline] |
Definition at line 118 of file P_SSLNetVConnection.h.
Referenced by ssl_callback_info().
void SSLNetVConnection::setSSLHandShakeComplete | ( | bool | state | ) | [inline] |
Definition at line 77 of file P_SSLNetVConnection.h.
int SSLNetVConnection::sslClientHandShakeEvent | ( | int & | err | ) |
Definition at line 662 of file SSLNetVConnection.cc.
References UnixNetVConnection::closed, Debug, debug_certificate_name(), NetState::enabled, is_debug_tag_set, UnixNetVConnection::nh, NetVConnection::options, NetVCOptions::sni_servername, ssl, ssl_error_ssl, ssl_error_syscall, ssl_error_want_read, ssl_error_want_write, ssl_error_want_x509_lookup, ssl_error_zero_return, SSL_INCREMENT_DYN_STAT, ssl_sni_name_set_failure, UnixNetVConnection::write, and UnixNetVConnection::writeReschedule().
Referenced by sslStartHandShake().
int SSLNetVConnection::sslServerHandShakeEvent | ( | int & | err | ) |
Definition at line 566 of file SSLNetVConnection.cc.
References Debug, debug_certificate_name(), Error, SSLNextProtocolSet::findEndpoint(), ink_assert, ink_get_hrtime(), is_debug_tag_set, ssl, SSL_INCREMENT_DYN_STAT, SSL_INCREMENT_DYN_STAT_EX, ssl_total_handshake_time_stat, ssl_total_success_handshake_count_stat, SSLDebugVC, SSLErrorName(), and sslHandshakeBeginTime.
Referenced by sslStartHandShake().
int SSLNetVConnection::sslStartHandShake | ( | int | event, | |
int & | err | |||
) | [virtual] |
Reimplemented from UnixNetVConnection.
Definition at line 525 of file SSLNetVConnection.cc.
References SSLNetProcessor::client_ctx, ink_assert, make_ssl_connection(), ssl, SSL_EVENT_CLIENT, SSL_EVENT_SERVER, ssl_NetProcessor, sslClientHandShakeEvent(), SSLErrorVC, and sslServerHandShakeEvent().
Referenced by net_read_io().
Definition at line 103 of file P_SSLNetVConnection.h.
Referenced by free(), load_buffer_and_write(), ssl_read_from_net(), sslClientHandShakeEvent(), SSLNetVConnection(), sslServerHandShakeEvent(), sslStartHandShake(), and TSHttpSsnSSLConnectionGet().
Definition at line 104 of file P_SSLNetVConnection.h.
Referenced by SSLNetVConnection(), and sslServerHandShakeEvent().