14#include "connectiontls.h"
15#include "tlsdefault.h"
24 m_connection( conn ), m_tls( 0 ), m_tlsHandler( 0 ),
28 m_connection->registerConnectionDataHandler(
this );
33 m_connection( conn ), m_tls( 0 ), m_tlsHandler( 0 ), m_log( log )
36 m_connection->registerConnectionDataHandler(
this );
49 m_connection->registerConnectionDataHandler( 0 );
53 m_connection = connection;
68 m_tls =
getTLSBase(
this, m_connection->server() );
73 if( !m_tls->init( m_clientKey, m_clientCerts, m_cacerts ) )
82 return m_connection->connect();
84 if( m_tls->handshake() )
100 m_tls->encrypt( data );
107 return m_connection->receive();
115 m_connection->disconnect();
123 m_connection->cleanup();
133 m_connection->getStatistics( totalIn, totalOut );
147 m_tls->decrypt( data );
159 m_handler->handleDisconnect(
this, reason );
167 m_connection->send( data );
173 m_handler->handleReceivedData(
this, data );
187 m_tlsHandler->handleHandshakeResult( tls, success, certinfo );
196 m_tlsHandler->handleHandshakeResult( tls, success, certinfo );
virtual ConnectionBase * newInstance() const =0
ConnectionDataHandler * m_handler
ConnectionBase(ConnectionDataHandler *cdh)
void registerConnectionDataHandler(ConnectionDataHandler *cdh)
This is an abstract base class to receive events from a ConnectionBase-derived object.
virtual void handleEncryptedData(const TLSBase *, const std::string &data)
ConnectionTLS(ConnectionDataHandler *cdh, ConnectionBase *conn, const LogSink &log)
virtual void handleDisconnect(const ConnectionBase *connection, ConnectionError reason)
virtual ConnectionError recv(int timeout=-1)
virtual void handleConnect(const ConnectionBase *connection)
virtual void handleReceivedData(const ConnectionBase *connection, const std::string &data)
virtual TLSBase * getTLSBase(TLSHandler *th, const std::string server)
virtual void disconnect()
virtual void handleDecryptedData(const TLSBase *, const std::string &data)
virtual ConnectionBase * newInstance() const
virtual ConnectionError connect()
void setConnectionImpl(ConnectionBase *connection)
virtual void handleHandshakeResult(const TLSBase *base, bool success, CertInfo &certinfo)
virtual bool send(const std::string &data)
virtual ConnectionError receive()
virtual void getStatistics(long int &totalIn, long int &totalOut)
An implementation of log sink and source.
An abstract base class for TLS implementations.
The namespace for the gloox library.
@ LogAreaClassConnectionTLS