Classes | Public Types | Public Member Functions | List of all members
GSmtp::Server Class Reference

An SMTP server class. More...

#include <gsmtpserver.h>

Inheritance diagram for GSmtp::Server:
GNet::MultiServer

Classes

struct  Config
 A structure containing GSmtp::Server configuration parameters. More...
 

Public Types

typedef std::list< GNet::AddressAddressList
 
- Public Types inherited from GNet::MultiServer
typedef std::list< AddressAddressList
 
typedef Server::PeerInfo PeerInfo
 

Public Member Functions

 Server (MessageStore &store, const GAuth::Secrets &client_secrets, const GAuth::Secrets &server_secrets, Config server_config, std::string smtp_server_address, unsigned int smtp_connection_timeout, GSmtp::Client::Config client_config)
 Constructor. More...
 
virtual ~Server ()
 Destructor. More...
 
void report () const
 Generates helpful diagnostics after construction. More...
 
GNet::ServerPeernewPeer (GNet::Server::PeerInfo)
 From MultiServer. More...
 
G::Signal2< std::string,
std::string > & 
eventSignal ()
 Returns a signal that indicates that something has happened. More...
 
- Public Member Functions inherited from GNet::MultiServer
 MultiServer (const AddressList &address_list, bool use_connection_lookup)
 Constructor. More...
 
 MultiServer ()
 Default constructor. Initialise with init(). More...
 
void init (const AddressList &address_list)
 Initilisation after default construction. More...
 
virtual ~MultiServer ()
 Destructor. More...
 
std::pair< bool, AddressfirstAddress () const
 Returns the first listening address. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from GNet::MultiServer
static bool canBind (const AddressList &listening_address_list, bool do_throw)
 Checks that the specified addresses can be bound. More...
 
static AddressList addressList (const Address &)
 A trivial convenience fuction that returns the given addresses as a single-element list. More...
 
static AddressList addressList (const AddressList &, unsigned int port)
 Returns the given list of addresses with the port set correctly. More...
 
static AddressList addressList (const G::Strings &, unsigned int port)
 A convenience function that returns a list of listening addresses given a list of listening interfaces and a port number. More...
 
- Protected Member Functions inherited from GNet::MultiServer
void serverCleanup ()
 Should be called from all derived classes' destructors so that peer objects can use their Server objects safely during their own destruction. More...
 
void serverReport (const std::string &server_type) const
 Writes to the system log a summary of the underlying server objects and their addresses. More...
 

Detailed Description

An SMTP server class.

Definition at line 92 of file gsmtpserver.h.

Member Typedef Documentation

Definition at line 95 of file gsmtpserver.h.

Constructor & Destructor Documentation

GSmtp::Server::Server ( MessageStore store,
const GAuth::Secrets client_secrets,
const GAuth::Secrets server_secrets,
Config  server_config,
std::string  smtp_server_address,
unsigned int  smtp_connection_timeout,
GSmtp::Client::Config  client_config 
)

Constructor.

Listens on the given port number using INET_ANY if 'interfaces' is empty, or on specific interfaces otherwise.

If the 'smtp-server-address' parameter is given then all messages are forwarded immediately, using the specified client-side timeout values and client-side secrets.

If the 'smtp-server-address' parameter is empty then the timeout values are ignored.

The references are kept.

Definition at line 136 of file gsmtpserver.cpp.

GSmtp::Server::~Server ( )
virtual

Destructor.

Definition at line 156 of file gsmtpserver.cpp.

Member Function Documentation

G::Signal2< std::string, std::string > & GSmtp::Server::eventSignal ( )

Returns a signal that indicates that something has happened.

Definition at line 162 of file gsmtpserver.cpp.

GNet::ServerPeer * GSmtp::Server::newPeer ( GNet::Server::PeerInfo  peer_info)
virtual
void GSmtp::Server::report ( ) const

Generates helpful diagnostics after construction.

Definition at line 167 of file gsmtpserver.cpp.


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