logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Mail::SRS::Daemon - modular daemon for Mail::SRS

Author

Description

       The SRS daemon listens on a socket for SRS address transformation requests. It transforms the addresses
       and returns the new addresses on the socket.

       It may be invoked from exim using ${readsocket ...}, and probably from other MTAs as well. See
       http://www.anarres.org/projects/srs/ for examples.

Exports

       Given :all, this module exports the following variables.

       $SRSSOCKET
           The filename of the default socket created by Mail::SRS::Daemon.

Methods

$daemon=newMail::SRS::Daemon(...)
       Construct a new Mail::SRS object and return it.  All parameters which are valid for Mail::SRS are also
       valid for Mail::SRS::Daemon and will be passed to the constructor of Mail::SRS verbatim. The exception to
       this rule is the Secret parameter, which will be promoted to a list and will have all secrets from
       SecretFile included. New parameters are documented here. See Mail::SRS for the rest.

       SecretFile => $string
           A  file  to read for secrets. Secrets are specified once per line. The first specified secret is used
           for encoding. Secrets are written one per line. Blank lines and lines starting with a # are  ignored.
           If Secret is not given, then the secret file must be nonempty.

           Secret  will specify a primary secret and override SecretFile if both are specified. However, secrets
           read from SecretFile still be used for decoding if both are specified.

       Socket => $socket
           An instance of IO::Socket, presumed to be a listening socket. This may be provided in order to use  a
           preexisting socket, rather than have Mail::SRS::Daemon construct a new socket.

   $daemon->run()
       Run  the  daemon. This method will never return. Errors and exceptions are caught, and error messages are
       returned down the socket.

Name

       Mail::SRS::Daemon - modular daemon for Mail::SRS

Protocol

       The daemon waits for a single line of text from the client, and will respond  with  a  single  line.  The
       lines are all of the form "COMMAND args...". Currently, two commands are supported: forward and reverse.

       A forward request looks like:

               FORWARD sender@source.comalias@forwarder.com

       A reverse request looks like:

               REVERSE srs0+HHH=TT=domain=local-part@forwarder.com

       In  either  case,  the daemon will respond with either a translated address, or a line starting "ERROR ",
       followed by a message.

See Also

Synopsis

       my $daemon = new Mail::SRS::Daemon(      SecretFile  => $secretfile,      Separator   => $separator,
                 ); $daemon->run();

Todo

       Add more daemon-related options, such as path to socket, or inet socket address.

See Also