NAME
Mail::SpamAssassin::Spamd
SYNOPSIS
use base qw(Mail::SpamAssassin::Spamd);
sub ... { ... }
...
DESCRIPTION
This module contains a skeleton for handling client request in spamd implementation. Must not be used directly, but subclassed.
An instance should have lifetime of a single request.
Interface is likely to change.
See the source code of spamd(1)
and Mail::SpamAssassin::Spamd::Apache2(3)
.
AUTHORS
The SpamAssassin(tm) Project <https://spamassassin.apache.org/>
COPYRIGHT
SpamAssassin is distributed under the Apache License, Version 2.0, as described in the file LICENSE
included with the distribution.
METHODS
log_connection()
-
Call as soon as the connection is accepted.
log_start_work()
-
Call after
parse_msgids()
. log_end_work()
-
Call after
pass_through_sa()
. log_result()
-
Call as late as possible, after sending response to the client.
check_headers()
-
Sanity checks on headers sent by the client. Sends status line indicating error to the client and returns false on first problem found.
parse_msgids()
-
Extract the Message-Id(s) for logging purposes.
protocol_error('error message')
service_timeout('error message')
-
Send appropriate status line to the client and log the error.
send_status_line('EX_FOO', 'message')
-
EX_error constant defaults to
EX_OK
. Message defaults to the name of the constant. send_response()
-
Generates response (headers and body, no status line) to the request and sends it to the client.
pass_through_sa()
-
Runs the actual tests. Wrap it with
eval()
to implement timeout. spamhdr()
-
Generates the
Spam: status ; score / threshold
response header. read_user_config()
-
Read config for the current user and register a cleanup handler to restore state of the SA object later. This is a wrapper around the handle_user_* methods.
handle_user_sql('username')
-
load_scoreonly_sql for the given user. Do not call this directly.
handle_user_ldap()
-
load_scoreonly_ldap for the given user. Do not call this directly.
status()
-
Returns the Mail::SpamAssassin::PerMsgStatus object. Only valid after
pass_through_sa()
. spamtest()
-
Returns the Mail::SpamAssassin object.
access_info()
user()
-
Returns username as supplied by client in the User header or string '(unknown)'. Use for logging purposes.
cfg()
-
Returns Mail::SpamAssassin::Spamd::Config object (or hash reference with resembling values).
headers_in()
-
Hash ref containing headers sent by the client.
cleanup_register(sub { ... }, $argument)
-
APR::Pool functionality -- call a piece of code when the object is destroyed.
The following methods must be overloaded:
_remote_host()
_remote_ip()
_remote_port()
-
Information about the client.
new( spamtest => $sa_object, foo => 'bar', ... )
-
Creates new object;
shift && bless { @_ }
, basically. handle_user_local('username')
-
read_scoreonly_config for the given user. You might want to change uid, chdir, set $ENV, etc. Do not call this directly.
read_body()
-
Read body from the client, run $self->spamtest->parse and store result as the
parsed
key. read_headers()
-
Read method and headers from the client. Set various properties accordingly.
send_buffer('list of', 'buffers to send')
-
Send buffers to the client.
auth_ident()
-
XXX