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::Milter::Wrapper - Perl extension for wrappering milter objects

Author

       Todd Vierling, <tv@duh.org> <tv@pobox.com>

Description

       Mail::Milter::Wrapper wraps another milter, allowing for interception of the passed arguments and/or
       return code of the contained milter.

Methods

       new(MILTER, CODEREF[, CALLBACK ...])
           Creates a Mail::Milter::Wrapper object.

           MILTER  is the milter to wrap, which may be a plain hash reference or an instance of a hashref object
           such as "Mail::Milter::Object".  CODEREF is the wrapper subroutine.   CALLBACKs,  if  specified,  are
           named callbacks which are needed by the wrapper, even if the contained milter does not use them.

           The wrapper subroutine will be called with the following arguments, in this order:

            * reference to the wrapper
            * name of callback
            * subroutine reference to call into the wrapped milter
            * arguments for the callback (>= 0)

           This  subroutine should ALWAYS pass the "close" callback through to the contained milter.  Failure to
           do so may corrupt the contained milter's state information and cause memory leaks.

           As an example, a simple subroutine which just passes the callback through might be written as:

               sub callback_wrapper {
                   shift; # don't need $this
                   my $cbname = shift;
                   my $callback_sub = shift;

                   &$callback_sub(@_);
               }

Name

       Mail::Milter::Wrapper - Perl extension for wrappering milter objects

See Also

       Mail::Milter, Sendmail::Milter

perl v5.36.0                                       2023-01-22                         Mail::Milter::Wrapper(3pm)

Synopsis

           use Mail::Milter::Wrapper;

           my $milter = ...;
           my $wrapper = new Mail::Milter::Wrapper($milter, \&foo);

           use Sendmail::Milter;
           ...
           Sendmail::Milter::register('foo', $wrapper, SMFI_CURR_ACTS);

See Also