Hi everyone,

Some time ago there was discussion about contributors distributing plugins on CPAN. I made a change so that should be possible. I didn't do more than the most basic testing, so I didn't commit it. Feedback welcome.

The patch below should apply to the latest code from the 0.3x branch [1]. After applying the patch you should be able to make a module like the following (just install it as a regular perl module) and then add "My::Plugin" to the config/plugins file to load it.

TODO:
   1) Testing
2) Make load_plugins or Qpsmtpd::Plugin smart enough that we won't need plugin_name in each plugin.

package My::Plugin;
use strict;
use base qw(Qpsmtpd::Plugin);
use Qpsmtpd::Constants;

sub plugin_name { __PACKAGE__ }

sub hook_quit {
  my $qp = shift->qp;

  # if she talks EHLO she is probably too sophisticated to enjoy the
  # fun, so skip it.
  return (DECLINED) if ($qp->connection->hello || '') eq "ehlo";

  my $fortune = '/usr/games/fortune';
  return DECLINED unless -e $fortune;

  # local %ENV = ();

  my @fortune = `$fortune -s`;
  @fortune = map { chop; s/^/  \/ /; $_ } @fortune;
$qp->respond(221, $qp->config('me') . " closing connection.", @fortune);
  return DONE;
}

1;



 - ask

[1] http://svn.perl.org/qpsmtpd/branches/0.3x/

Attachment: plugin_modules.patch
Description: Binary data




--
http://askask.com/  - http://develooper.com/


Reply via email to