Connection Class Reference

This is an implementation of a TLS-aware connection handler. More...

#include <connection.h>

Collaboration diagram for Connection:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Connection (Parser *parser, const std::string &server, int port=-1)
virtual ~Connection ()
ConnectionState connect ()
ConnectionError recv (int timeout=-1)
void send (const std::string &data)
ConnectionError receive ()
void disconnect (ConnectionError e)
bool isSecure () const
ConnectionState state () const
int fileDescriptor ()
void setCompression (bool compression)
bool initCompression (bool init)
bool tlsHandshake ()
void setCACerts (const StringList &cacerts)
const CertInfofetchTLSInfo () const

Detailed Description

This is an implementation of a TLS-aware connection handler.

Author:
Jakob Schroeter <js@camaya.net>
Since:
0.4

Definition at line 54 of file connection.h.


Constructor & Destructor Documentation

Connection Parser parser,
const std::string &  server,
int  port = -1
 

Constructs a new Connection object. You should not need to use this function directly.

Parameters:
parser A parser to feed with incoming data.
server A server to connect to.
port The port to connect to. The default of -1 means that SRV records will be used to find out about the actual host:port.

Definition at line 45 of file connection.cpp.

~Connection  )  [virtual]
 

Virtual destructor

Definition at line 54 of file connection.cpp.

References Connection::initCompression().


Member Function Documentation

ConnectionState connect  ) 
 

Used to initiate the connection.

Returns:
Returns the connection state.

Definition at line 560 of file connection.cpp.

References DNS::connect(), DNS::DNS_COULD_NOT_CONNECT, DNS::DNS_COULD_NOT_RESOLVE, DNS::DNS_NO_HOSTS_FOUND, gloox::STATE_CONNECTED, and gloox::STATE_CONNECTING.

Referenced by ClientBase::connect().

void disconnect ConnectionError  e  ) 
 

Disconnects an established connection. NOOP if no active connection exists.

Parameters:
e A ConnectionError decribing why the connection is terminated. Well, its not really an error here, but...

Definition at line 384 of file connection.cpp.

Referenced by ClientBase::disconnect().

const CertInfo& fetchTLSInfo  )  const [inline]
 

This function is used to retrieve certificate and connection info of a encrypted connection.

Returns:
Certificate information.

Definition at line 161 of file connection.h.

int fileDescriptor  ) 
 

Gives access to the raw file descriptor of a connection. Use it wisely. Especially, you should not recv() any data from it. There is no way to feed that back into the parser. You can select()/poll() it and use Connection::recv( -1 ) to fetch the data.

Returns:
The file descriptor of the active connection, or -1 if no connection is established.

Definition at line 393 of file connection.cpp.

Referenced by ClientBase::fileDescriptor().

bool initCompression bool  init  ) 
 

In case Zlib is available, this function is used to init or de-init stream compression. You must call this before enabling compression using setCompression().

Parameters:
init Whether to init (true) or de-init (false) stream compression.
Returns:
Returns true if compression was successfully initialized/de-initialized, false otherwise.

Definition at line 302 of file connection.cpp.

Referenced by Connection::~Connection().

bool isSecure  )  const [inline]
 

Use this function to determine whether an esatblished connection is encrypted.

Returns:
True if the connection is encrypted, false otherwise.

Definition at line 109 of file connection.h.

Referenced by ClientBase::log().

ConnectionError receive  ) 
 

Use this function to put the connection into 'receive mode'.

Returns:
Returns a value indicating the disconnection reason.

Definition at line 494 of file connection.cpp.

References gloox::CONN_IO_ERROR, gloox::CONN_OK, and Connection::recv().

Referenced by ClientBase::connect().

ConnectionError recv int  timeout = -1  ) 
 

Use this periodically to receive data from the socket and to feed the parser.

Parameters:
timeout The timeout to use for select. Default means blocking.
Returns:
The state of the connection.

Definition at line 399 of file connection.cpp.

References gloox::CONN_IO_ERROR, gloox::CONN_OK, gloox::CONN_USER_DISCONNECTED, Parser::feed(), Parser::PARSER_BADXML, Parser::PARSER_NOMEM, and Parser::PARSER_OK.

Referenced by Connection::receive(), and ClientBase::recv().

void send const std::string &  data  ) 
 

Use this function to send a string of data over the wire. The function returns only after all data has been sent.

Parameters:
data The data to send.

Definition at line 509 of file connection.cpp.

void setCACerts const StringList cacerts  )  [inline]
 

Use this function to set a number of trusted root CA certificates. which shall be used to verify a servers certificate.

Parameters:
cacerts A list of absolute paths to CA root certificate files in PEM format.

Definition at line 155 of file connection.h.

Referenced by ClientBase::connect().

void setCompression bool  compression  ) 
 

In case Zlib is available, this function can be used to enable stream compression as defined in JEP-0138.

Parameters:
compression Whether to enable or disable stream compression.
Returns:
Returns true if compression was successfully enabled, false otherwise.

Definition at line 328 of file connection.cpp.

ConnectionState state  )  const [inline]
 

Returns the current connection state.

Returns:
The state of the connection.

Definition at line 115 of file connection.h.

Referenced by ClientBase::state().

bool tlsHandshake  ) 
 

Call this function to start a TLS handshake over an established connection.

Definition at line 130 of file connection.cpp.

References gloox::CERT_INVALID, gloox::CERT_REVOKED, gloox::CERT_SIGNER_NOT_CA, gloox::CERT_SIGNER_UNKNOWN, and CertInfo::status.


The documentation for this class was generated from the following files:
Generated on Mon Jan 16 16:19:57 2006 for gloox by  doxygen 1.4.6