48059c122c
From: gordonr@gormand.com.au Subject: Re: Submitting plugins (was Re: New plugin: denybounce) Date: January 24, 2006 9:02:35 PM PST To: ask@develooper.com Cc: gavin@openfusion.com.au, qpsmtpd@perl.org Message-Id: <43D7066B.3050106@gormand.com.au> Ask Bjørn Hansen wrote: On Jan 24, 2006, at 1:08 PM, Gordon Rowell wrote: - License statement - either as per qpsmtpd or as per Perl or similar open license No, it really should be MIT licensed ("as per qpsmtpd") to go in the distribution. There are a few exceptions (only your plugins at a cursory glance), but those are mistakes. :-) I don't have an issue with my qpsmtpd plugins being changed to state: =head1 AUTHOR Copyright 2005 Gordon Rowell <gordonr@gormand.com.au> This software is free software and may be distributed under the same terms as qpsmtpd itself. Though as a distro maintainer, we do have a sizeable issue with license proliferation. It really is a bit of a nightmare when two licenses are almost, but not completely, the same. Thanks, Gordon r4216@g5: ask | 2006-01-24 23:12:21 -0800 merge license fix from trunk git-svn-id: https://svn.perl.org/qpsmtpd/trunk@603 958fd67b-6ff1-0310-b445-bb7760255be9
58 lines
1.4 KiB
Plaintext
58 lines
1.4 KiB
Plaintext
=pod
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
This plugin checks the norelayclients config file to see if
|
|
relaying is denied.
|
|
|
|
This allows specific clients, such as the gateway, to be denied
|
|
relaying, even though they would be allowed relaying by the
|
|
relayclients file.
|
|
|
|
=head1 CONFIG
|
|
|
|
config/norelayclients
|
|
|
|
Each line is:
|
|
- a full IP address
|
|
- partial IP address terminated by a dot for matching whole networks
|
|
e.g. 192.168.42.
|
|
|
|
=head1 BUGS AND LIMITATIONS
|
|
|
|
This plugin does not have a more_norelayclients map equivalent
|
|
of the more_relayclients map of the check_relay plugin.
|
|
|
|
=head1 AUTHOR
|
|
|
|
Based on check_relay plugin from the qpsmtpd distribution.
|
|
|
|
Copyright 2005 Gordon Rowell <gordonr@gormand.com.au>
|
|
|
|
This software is free software and may be distributed under the same
|
|
terms as qpsmtpd itself.
|
|
|
|
=cut
|
|
|
|
sub hook_connect {
|
|
my ($self, $transaction) = @_;
|
|
my $connection = $self->qp->connection;
|
|
|
|
# Check if this IP is not allowed to relay
|
|
my @no_relay_clients = $self->qp->config("norelayclients");
|
|
my %no_relay_clients = map { $_ => 1 } @no_relay_clients;
|
|
my $client_ip = $self->qp->connection->remote_ip;
|
|
while ($client_ip) {
|
|
if ( exists($no_relay_clients{$client_ip}) )
|
|
{
|
|
$connection->relay_client(0);
|
|
delete $ENV{RELAYCLIENT};
|
|
$self->log(LOGNOTICE, "check_norelay: $client_ip denied relaying");
|
|
last;
|
|
}
|
|
$client_ip =~ s/\d+\.?$//; # strip off another 8 bits
|
|
}
|
|
|
|
return (DECLINED);
|
|
}
|