
Mail::SpamAssassin::Spamd

use base qw(Mail::SpamAssassin::Spamd);
sub ... { ... }
...

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).
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.
service_unavailable_error('error message')
protocol_error('error message')
service_timeout('error message')Send appropiate 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