blocxx
BLOCXX_NAMESPACE::SSLSocketImpl Class Reference

#include <SSLSocketImpl.hpp>

Inheritance diagram for BLOCXX_NAMESPACE::SSLSocketImpl:
BLOCXX_NAMESPACE::SocketBaseImpl BLOCXX_NAMESPACE::SelectableIFC BLOCXX_NAMESPACE::IOIFC BLOCXX_NAMESPACE::IntrusiveCountableBase

Public Member Functions

 SSLSocketImpl (SSLClientCtxRef sslCtx)
 
 SSLSocketImpl ()
 
 SSLSocketImpl (SocketHandle_t fd, SocketAddress::AddressType addrType, const SSLServerCtxRef &sslCtx)
 This constructor is to be used only for server sockets.
 
 SSLSocketImpl (SocketHandle_t fd, SocketAddress::AddressType addrType)
 This constructor is to be used only for server sockets.
 
 SSLSocketImpl (const SocketAddress &addr)
 
virtual ~SSLSocketImpl ()
 
virtual void connect (const SocketAddress &addr)
 
virtual void disconnect ()
 
Select_t getSelectObj () const
 
SSL * getSSL () const
 return the SSL structure associated with the socket
 
bool peerCertVerified () const
 Did the peer certificate pass verification?
 
- Public Member Functions inherited from BLOCXX_NAMESPACE::SocketBaseImpl
 SocketBaseImpl ()
 
 SocketBaseImpl (SocketHandle_t fd, SocketAddress::AddressType addrType)
 
 SocketBaseImpl (const SocketAddress &addr)
 
virtual ~SocketBaseImpl ()
 
void setReceiveTimeout (const Timeout &timeout)
 
Timeout getReceiveTimeout () const
 
void setSendTimeout (const Timeout &timeout)
 
Timeout getSendTimeout () const
 
void setConnectTimeout (const Timeout &timeout)
 
Timeout getConnectTimeout () const
 
void setTimeouts (const Timeout &timeout)
 
bool receiveTimeOutExpired () const
 
int write (const void *dataOut, int dataOutLen, ErrorAction errorAsException=E_RETURN_ON_ERROR)
 Write a specified number of bytes to the device that is exposing the IOIFC interface.
 
int read (void *dataIn, int dataInLen, ErrorAction errorAsException=E_RETURN_ON_ERROR)
 Read a specified number of bytes from the device that is exposing the IOIFC interface.
 
bool waitForOutput (const Timeout &timeout)
 
std::istream & getInputStream ()
 
std::ostream & getOutputStream ()
 
std::iostream & getIOStream ()
 
SocketAddress getLocalAddress () const
 
SocketAddress getPeerAddress () const
 
SocketHandle_t getfd () const
 
bool isConnected () const
 
- Public Member Functions inherited from BLOCXX_NAMESPACE::SelectableIFC
virtual ~SelectableIFC ()
 
- Public Member Functions inherited from BLOCXX_NAMESPACE::IOIFC
virtual ~IOIFC ()
 

Private Member Functions

virtual int readAux (void *dataIn, int dataInLen)
 
virtual int writeAux (const void *dataOut, int dataOutLen)
 
void connectSSL ()
 
virtual bool waitForInput (const Timeout &timeout)
 
 SSLSocketImpl (const SSLSocketImpl &arg)
 
SSLSocketImploperator= (const SSLSocketImpl &arg)
 

Private Attributes

SSL * m_ssl
 
BIO * m_sbio
 
SSLClientCtxRef m_sslCtx
 
OWSSLContext m_owctx
 

Additional Inherited Members

- Public Types inherited from BLOCXX_NAMESPACE::IOIFC
enum  ErrorAction { E_THROW_ON_ERROR , E_RETURN_ON_ERROR }
 
- Static Public Member Functions inherited from BLOCXX_NAMESPACE::SocketBaseImpl
static void setDumpFiles (const String &in, const String &out)
 
- Protected Member Functions inherited from BLOCXX_NAMESPACE::SocketBaseImpl
- Protected Member Functions inherited from BLOCXX_NAMESPACE::IntrusiveCountableBase
 IntrusiveCountableBase ()
 
 IntrusiveCountableBase (const IntrusiveCountableBase &)
 
IntrusiveCountableBaseoperator= (const IntrusiveCountableBase &)
 
virtual ~IntrusiveCountableBase ()
 
- Protected Attributes inherited from BLOCXX_NAMESPACE::SocketBaseImpl
bool m_isConnected
 
SocketHandle_t m_sockfd
 
SocketAddress m_localAddress
 
SocketAddress m_peerAddress
 

Detailed Description

Definition at line 56 of file SSLSocketImpl.hpp.

Constructor & Destructor Documentation

◆ SSLSocketImpl() [1/6]

BLOCXX_NAMESPACE::SSLSocketImpl::SSLSocketImpl ( SSLClientCtxRef sslCtx)

◆ SSLSocketImpl() [2/6]

BLOCXX_NAMESPACE::SSLSocketImpl::SSLSocketImpl ( )

◆ SSLSocketImpl() [3/6]

BLOCXX_NAMESPACE::SSLSocketImpl::SSLSocketImpl ( SocketHandle_t fd,
SocketAddress::AddressType addrType,
const SSLServerCtxRef & sslCtx )

This constructor is to be used only for server sockets.

Parameters
fdA socket handle, presumably created by a ServerSocket's accept().

◆ SSLSocketImpl() [4/6]

BLOCXX_NAMESPACE::SSLSocketImpl::SSLSocketImpl ( SocketHandle_t fd,
SocketAddress::AddressType addrType )

This constructor is to be used only for server sockets.

Parameters
fdA socket handle, presumably created by a ServerSocket's
addrTypeThe addressType accept().

◆ SSLSocketImpl() [5/6]

BLOCXX_NAMESPACE::SSLSocketImpl::SSLSocketImpl ( const SocketAddress & addr)
Exceptions
SocketException

◆ ~SSLSocketImpl()

virtual BLOCXX_NAMESPACE::SSLSocketImpl::~SSLSocketImpl ( )
virtual

◆ SSLSocketImpl() [6/6]

BLOCXX_NAMESPACE::SSLSocketImpl::SSLSocketImpl ( const SSLSocketImpl & arg)
private

Member Function Documentation

◆ connect()

virtual void BLOCXX_NAMESPACE::SSLSocketImpl::connect ( const SocketAddress & addr)
virtual
Exceptions
SocketException

Reimplemented from BLOCXX_NAMESPACE::SocketBaseImpl.

◆ connectSSL()

void BLOCXX_NAMESPACE::SSLSocketImpl::connectSSL ( )
private

◆ disconnect()

virtual void BLOCXX_NAMESPACE::SSLSocketImpl::disconnect ( )
virtual

Reimplemented from BLOCXX_NAMESPACE::SocketBaseImpl.

◆ getSelectObj()

Select_t BLOCXX_NAMESPACE::SSLSocketImpl::getSelectObj ( ) const
virtual

Reimplemented from BLOCXX_NAMESPACE::SocketBaseImpl.

◆ getSSL()

SSL * BLOCXX_NAMESPACE::SSLSocketImpl::getSSL ( ) const

return the SSL structure associated with the socket

Returns
the SSL ptr.

◆ operator=()

SSLSocketImpl & BLOCXX_NAMESPACE::SSLSocketImpl::operator= ( const SSLSocketImpl & arg)
private

◆ peerCertVerified()

bool BLOCXX_NAMESPACE::SSLSocketImpl::peerCertVerified ( ) const

Did the peer certificate pass verification?

Returns
true if peer cert passed verification

◆ readAux()

virtual int BLOCXX_NAMESPACE::SSLSocketImpl::readAux ( void * dataIn,
int dataInLen )
privatevirtual

◆ waitForInput()

virtual bool BLOCXX_NAMESPACE::SSLSocketImpl::waitForInput ( const Timeout & timeout)
privatevirtual

Reimplemented from BLOCXX_NAMESPACE::SocketBaseImpl.

◆ writeAux()

virtual int BLOCXX_NAMESPACE::SSLSocketImpl::writeAux ( const void * dataOut,
int dataOutLen )
privatevirtual

Member Data Documentation

◆ m_owctx

OWSSLContext BLOCXX_NAMESPACE::SSLSocketImpl::m_owctx
private

Definition at line 125 of file SSLSocketImpl.hpp.

◆ m_sbio

BIO* BLOCXX_NAMESPACE::SSLSocketImpl::m_sbio
private

Definition at line 112 of file SSLSocketImpl.hpp.

◆ m_ssl

SSL* BLOCXX_NAMESPACE::SSLSocketImpl::m_ssl
private

Definition at line 111 of file SSLSocketImpl.hpp.

◆ m_sslCtx

SSLClientCtxRef BLOCXX_NAMESPACE::SSLSocketImpl::m_sslCtx
private

Definition at line 119 of file SSLSocketImpl.hpp.


The documentation for this class was generated from the following file: