blocxx
Public Member Functions | Private Member Functions | Private Attributes | List of all members
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::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

BLOCXX_NAMESPACE::SSLSocketImpl::SSLSocketImpl ( SSLClientCtxRef  sslCtx)
BLOCXX_NAMESPACE::SSLSocketImpl::SSLSocketImpl ( )
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().
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().
BLOCXX_NAMESPACE::SSLSocketImpl::SSLSocketImpl ( const SocketAddress addr)
Exceptions
SocketException
virtual BLOCXX_NAMESPACE::SSLSocketImpl::~SSLSocketImpl ( )
virtual
BLOCXX_NAMESPACE::SSLSocketImpl::SSLSocketImpl ( const SSLSocketImpl arg)
private

Member Function Documentation

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

Reimplemented from BLOCXX_NAMESPACE::SocketBaseImpl.

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

Reimplemented from BLOCXX_NAMESPACE::SocketBaseImpl.

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

Reimplemented from BLOCXX_NAMESPACE::SocketBaseImpl.

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

return the SSL structure associated with the socket

Returns
the SSL ptr.
SSLSocketImpl& BLOCXX_NAMESPACE::SSLSocketImpl::operator= ( const SSLSocketImpl arg)
private
bool BLOCXX_NAMESPACE::SSLSocketImpl::peerCertVerified ( ) const

Did the peer certificate pass verification?

Returns
true if peer cert passed verification
virtual int BLOCXX_NAMESPACE::SSLSocketImpl::readAux ( void *  dataIn,
int  dataInLen 
)
privatevirtual
virtual bool BLOCXX_NAMESPACE::SSLSocketImpl::waitForInput ( const Timeout timeout)
privatevirtual

Reimplemented from BLOCXX_NAMESPACE::SocketBaseImpl.

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

Member Data Documentation

OWSSLContext BLOCXX_NAMESPACE::SSLSocketImpl::m_owctx
private

Definition at line 125 of file SSLSocketImpl.hpp.

BIO* BLOCXX_NAMESPACE::SSLSocketImpl::m_sbio
private

Definition at line 112 of file SSLSocketImpl.hpp.

SSL* BLOCXX_NAMESPACE::SSLSocketImpl::m_ssl
private

Definition at line 111 of file SSLSocketImpl.hpp.

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: