Mail::MtPolicyd::Request(3pm)

NAME
Mail::MtPolicyd::Request - the request object

VERSION
version 2.05

ATTRIBUTES

  attributes
Contains an HashRef with all attributes of the request.

To retrieve a single attribute the attr method could be used:

  $obj->attr('sender');

  session
Contains a HashRef with all values stored in the session.

mtpolicyd will persist the content of this HashRef across requests with the same instance_id.

  server
Contains the Net::Server object of mtpolicyd.

  type
The type of the request. Postfix will always use 'smtpd_access_policy'.

  use_caching
Could be used to disable caching. Only used within the unit tests.

METHODS

  dump_attr
Returns an string to dump the content of a request.

  get($variable_name)
Retrieve value of a session or request variable.

The format for the variable name is

  (<scope>:)?<variable>

If no scope is given it default to the request scope.

Valid scopes are:

session, s
    Session variables.

request, r
    Request attributes.

For example:

  $r->get('request:sender'); # retrieve sender from request
  $r->get('r:sender');       # short format
  $r->get('sender');         # scope defaults to request

  $r->get('session:user_policy'); # retrieve session variable user_policy
  $r->get('s:user_policy');       # the same

  new_from_fh($fh)
An object constructor for creating an request object with the content read for the supplied filehandle $fh.

Will die if am error ocours:

error parsing request
    A line in the request could not be parsed.

while reading request: <io-error>
    The filehandle had an error while reading the request.

connection closed by peer
    Connection has been closed while reading the request.

could not parse request
    The client did not send a complete request.

  do_cached( $key, $sub )
This method will execute the function reference give in $sub and store the return values in $key within the session. If there is already a cached result stored within $key of the session it will return the content instead of calling the reference again.

Returns an Array with the return values of the function call.

Example:

  my ( $ip_result, $info ) = $r->do_cached('rbl-'.$self->name.'-result',
    sub { $self->_rbl->check( $ip ) } );

  is_already_done( $key )
This function will raise an flag with name of $key within the session and return true if the flag is already set. False otherwise.

This could be used to prevent scores or headers from being applied a second time.

Example:

  if( defined $self->score && ! $r->is_already_done('rbl-'.$self->name.'-score') ) {
    $self->add_score($r, $self->name => $self->score);
  }

  is_attr_defined
Returns true if all given attribute names are defined and non-empty.

AUTHOR
Markus Benning <ich@markusbenning.de>

COPYRIGHT AND LICENSE
This software is Copyright (c) 2014 by Markus Benning <ich@markusbenning.de>.

This is free software, licensed under:

  The GNU General Public License, Version 2, June 1991