E-MailRelay

Classes | Public Member Functions | Static Public Member Functions | List of all members
GSmtp::SpamClient Class Reference

A client class that interacts with a remote process using a protocol somewhat similar to the spamassassin spamc/spamd protocol. More...

`#include <gspamclient.h>`

Inheritance diagram for GSmtp::SpamClient:

## Public Member Functions
| SpamClient (GNet::ExceptionSink, const GNet::Location &host_and_service, bool read_only, unsigned int connect_timeout, unsigned int response_timeout)
| Constructor. More...
void | request (const std::string &file_path)
| Starts sending a request that comprises a few http-like header lines followed by the contents of the given file. More...
bool | busy () const
| Returns true after request() and before the subsequent event signal. More...
| SpamClient (const SpamClient &)=delete
| SpamClient (SpamClient &&)=delete
void | operator= (const SpamClient &)=delete
void | operator= (SpamClient &&)=delete
Public Member Functions inherited from GNet::Client
| Client (ExceptionSink, const Location &remote_location, const Config &)
| Constructor. More...
void | connect ()
| Initiates a connection to the remote server. More...
bool | connected () const
| Returns true if connected to the peer. More...
bool | hasConnected () const
| Returns true if ever connected(). More...
void | disconnect ()
| Aborts the connection and destroys the object's internal state, resulting in a zombie object. More...
std::pair< bool, Address > | localAddress () const override
| Override from Connection. More...
std::pair< bool, Address > | peerAddress () const override
| Override from Connection. More...
std::string | connectionState () const override
| Returns the connection state display string. More...
std::string | peerCertificate () const override
| Returns the peer's TLS certificate. More...
Location | remoteLocation () const
| Returns a Location structure, including the result of name lookup if available. More...
bool | send (const std::string &data, std::size_t offset=0)
| Sends data to the peer and starts the response timer (if configured). More...
bool | send (const std::vector< G::string_view > &data, std::size_t offset=0)
| Overload for scatter/gather segments. More...
G::Slot::Signal< const std::string &, const std::string &, const std::string & > & | eventSignal () noexcept
| Returns a signal that indicates that something interesting has happened. More...
void | doOnDelete (const std::string &reason, bool done)
| Called by ClientPtr (or equivalent) to call onDelete(), just before this client object is deleted. More...
bool | finished () const
| Returns true if finish()ed or disconnect()ed. More...
LineBufferState | lineBuffer () const
| Returns information about the state of the internal line-buffer. More...
| ~Client () override
| Destructor. More...
| Client (const Client &)=delete
| Client (Client &&)=delete
void | operator= (const Client &)=delete
void | operator= (Client &&)=delete
Public Member Functions inherited from GNet::Connection
virtual | ~Connection ()=default
| Destructor.
virtual std::pair< bool, Address > | localAddress () const =0
| Returns the connection's local address. More...
virtual std::pair< bool, Address > | peerAddress () const =0
| Returns the connection's peer address. More...
virtual std::string | connectionState () const =0
| Returns the connection state as a display string. More...
virtual std::string | peerCertificate () const =0
| Returns the peer's TLS certificate. More...
Public Member Functions inherited from GNet::ExceptionSource
virtual std::string | exceptionSourceId () const
| Returns an identifying string for logging purposes, or the empty string. More...
virtual | ~ExceptionSource ()
| Destructor. More...
| ExceptionSource (const ExceptionSource &)=delete
| ExceptionSource (ExceptionSource &&)=delete
void | operator= (const ExceptionSource &)=delete
void | operator= (ExceptionSource &&)=delete

## Static Public Member Functions
static void | username (const std::string &)
| Sets the username used in the network protocol. More...

## Additional Inherited Members
Protected Member Functions inherited from GNet::Client
StreamSocket & | socket ()
| Returns a reference to the socket. Throws if not connected. More...
const StreamSocket & | socket () const
| Returns a const reference to the socket. Throws if not connected. More...
void | finish (bool with_socket_shutdown)
| Indicates that the last data has been sent and the client is expecting a peer disconnect. More...
void | clearInput ()
| Clears the input LineBuffer and cancels the response timer if running. More...
virtual bool | onReceive (const char *data, std::size_t size, std::size_t eolsize, std::size_t linesize, char c0)=0
| Called with received data. More...
virtual void | onConnect ()=0
| Called once connected.
virtual void | onSendComplete ()=0
| Called when all residual data from send() has been sent.
virtual void | onDelete (const std::string &reason)=0
| Called just before ClientPtr destroys the Client as the result of handling an exception. More...
void | secureConnect ()
| Starts TLS/SSL client-side negotiation. More...

## Detailed Description

A client class that interacts with a remote process using a protocol somewhat similar to the spamassassin spamc/spamd protocol.

The interface is similar to GSmtp::RequestClient but it is single-use: only one request() can be made per object.

Definition at line 46 of file gspamclient.h.

## Constructor & Destructor Documentation

## ◆ SpamClient()

GSmtp::SpamClient::SpamClient | ( | GNet::ExceptionSink | es,
|  | const GNet::Location & | host_and_service,
|  | bool | read_only,
|  | unsigned int | connect_timeout,
|  | unsigned int | response_timeout
| ) |  |

Constructor.

Definition at line 30 of file gspamclient.cpp.

## Member Function Documentation

## ◆ busy()

bool GSmtp::SpamClient::busy | ( |  | ) | const

Returns true after request() and before the subsequent event signal.

Definition at line 57 of file gspamclient.cpp.

## ◆ request()

void GSmtp::SpamClient::request | ( | const std::string & | file_path | ) |

Starts sending a request that comprises a few http-like header lines followed by the contents of the given file.

The response is spooled into a temporary file and then committed back to the same file.

The base class's "event" signal will be emitted when processing is complete. In this case the first signal parameter will "spam" and the second will be the parsed response.

See also GNet::Client::eventSignal().

Definition at line 62 of file gspamclient.cpp.

## ◆ username()

void GSmtp::SpamClient::username | ( | const std::string & | username | ) |
| static

Sets the username used in the network protocol.

Definition at line 52 of file gspamclient.cpp.

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

- /usr/src/slapt-src-x86_64/network/emailrelay/emailrelay-2.3/src/gsmtp/gspamclient.h
- /usr/src/slapt-src-x86_64/network/emailrelay/emailrelay-2.3/src/gsmtp/gspamclient.cpp