http_config plugin
other minor changes update STATUS and Changes git-svn-id: https://svn.perl.org/qpsmtpd/trunk@96 958fd67b-6ff1-0310-b445-bb7760255be9
This commit is contained in:
parent
9d5610a80a
commit
f9113eb73a
15
Changes
15
Changes
@ -1,3 +1,18 @@
|
|||||||
|
0.20 - development
|
||||||
|
|
||||||
|
Store hooks runtime config globally so they will work within the
|
||||||
|
transaction objects too.
|
||||||
|
|
||||||
|
content_log plugin - log the content of all mails for
|
||||||
|
debugging. Robert Spier <robert@perl.org>.
|
||||||
|
|
||||||
|
http_config plugin - get configuration via http
|
||||||
|
|
||||||
|
plugins can take arguments via their line in the "plugins" file
|
||||||
|
|
||||||
|
make the quit_fortune plugin check that the fortune program exists
|
||||||
|
|
||||||
|
|
||||||
0.12 - 2002/10/17
|
0.12 - 2002/10/17
|
||||||
|
|
||||||
Better error messages when a plugin fails
|
Better error messages when a plugin fails
|
||||||
|
2
STATUS
2
STATUS
@ -12,6 +12,8 @@ plugin support;
|
|||||||
plugin access to the data line by line during the DATA phase
|
plugin access to the data line by line during the DATA phase
|
||||||
(instead of just after)
|
(instead of just after)
|
||||||
|
|
||||||
|
if qmail-queue can't be loaded we still return 250 ?!
|
||||||
|
|
||||||
|
|
||||||
TRACE in Constants.pm is not actually being used. Should it be?
|
TRACE in Constants.pm is not actually being used. Should it be?
|
||||||
|
|
||||||
|
50
plugins/http_config
Normal file
50
plugins/http_config
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
http_config
|
||||||
|
|
||||||
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
|
Example config plugin. Gets configuration data via http requests.
|
||||||
|
|
||||||
|
=head1 CONFIG
|
||||||
|
|
||||||
|
http_config is configured at plugin loading time via the plugins
|
||||||
|
config. Load the plugin with a list of urls like the folllowing.
|
||||||
|
|
||||||
|
http_config http://localhost/~smtpd/config/ http://www.example.com/cgi-bin/qp?config=
|
||||||
|
|
||||||
|
Looking to config "me", qpsmtpd will try loading
|
||||||
|
http://localhost/~smtpd/config/me and if failing that then try
|
||||||
|
http://www.example.com/cgi-bin/qp?config=me
|
||||||
|
|
||||||
|
=head1 BUGS
|
||||||
|
|
||||||
|
http_config doesn't do any caching. It should do some simple caching
|
||||||
|
to be used in production.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
use LWP::Simple qw(get);
|
||||||
|
|
||||||
|
my @urls;
|
||||||
|
|
||||||
|
sub register {
|
||||||
|
my ($self, $qp, @args) = @_;
|
||||||
|
@urls = @args;
|
||||||
|
$self->register_hook("config", "http_config");
|
||||||
|
}
|
||||||
|
|
||||||
|
sub http_config {
|
||||||
|
my ($self, $transaction, $config) = @_;
|
||||||
|
$self->log(0, "http_config called with $config");
|
||||||
|
for my $url (@urls) {
|
||||||
|
$self->log(10, "http_config loading from $url");
|
||||||
|
my @config = split /[\r\n]+/, (get "$url$config" || "");
|
||||||
|
chomp @config;
|
||||||
|
@config = grep { $_ and $_ !~ m/^\s*#/ and $_ =~ m/\S/ } @config;
|
||||||
|
close CF;
|
||||||
|
$self->log(0, "returning http_config for $config ",Data::Dumper->Dump([\@config], [qw(config)]));
|
||||||
|
return (OK, @config) if @config;
|
||||||
|
}
|
||||||
|
return DECLINED;
|
||||||
|
}
|
@ -10,7 +10,12 @@ sub quit_handler {
|
|||||||
# fun, so skip it.
|
# fun, so skip it.
|
||||||
return (DECLINED) if ($qp->connection->hello || '') eq "ehlo";
|
return (DECLINED) if ($qp->connection->hello || '') eq "ehlo";
|
||||||
|
|
||||||
my @fortune = `/usr/games/fortune -s`;
|
my $fortune = '/usr/games/fortune';
|
||||||
|
return DECLINED unless -e $fortune;
|
||||||
|
|
||||||
|
# local %ENV = ();
|
||||||
|
|
||||||
|
my @fortune = `$fortune -s`;
|
||||||
@fortune = map { chop; s/^/ \/ /; $_ } @fortune;
|
@fortune = map { chop; s/^/ \/ /; $_ } @fortune;
|
||||||
$qp->respond(221, $qp->config('me') . " closing connection.", @fortune);
|
$qp->respond(221, $qp->config('me') . " closing connection.", @fortune);
|
||||||
return DONE;
|
return DONE;
|
||||||
|
Loading…
Reference in New Issue
Block a user