You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by km...@apache.org on 2015/05/22 22:16:45 UTC
svn commit: r1681228 - in
/spamassassin/trunk/spamd-apache2/lib/Mail/SpamAssassin/Spamd: Apache2.pm
Apache2/AclIP.pm Apache2/AclRFC1413.pm
Author: kmcgrail
Date: Fri May 22 20:16:45 2015
New Revision: 1681228
URL: http://svn.apache.org/r1681228
Log:
Cleanup of spamd-apache2 for httpd 2.4 - bug 7197
Modified:
spamassassin/trunk/spamd-apache2/lib/Mail/SpamAssassin/Spamd/Apache2.pm
spamassassin/trunk/spamd-apache2/lib/Mail/SpamAssassin/Spamd/Apache2/AclIP.pm
spamassassin/trunk/spamd-apache2/lib/Mail/SpamAssassin/Spamd/Apache2/AclRFC1413.pm
Modified: spamassassin/trunk/spamd-apache2/lib/Mail/SpamAssassin/Spamd/Apache2.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/spamd-apache2/lib/Mail/SpamAssassin/Spamd/Apache2.pm?rev=1681228&r1=1681227&r2=1681228&view=diff
==============================================================================
--- spamassassin/trunk/spamd-apache2/lib/Mail/SpamAssassin/Spamd/Apache2.pm (original)
+++ spamassassin/trunk/spamd-apache2/lib/Mail/SpamAssassin/Spamd/Apache2.pm Fri May 22 20:16:45 2015
@@ -17,6 +17,8 @@ use APR::Pool (); # cleanup_regis
use APR::SockAddr ();
use APR::Socket ();
use APR::Status ();
+use Apache::Test;
+use constant APACHE24 => have_min_apache_version('2.4.0');
eval { use Time::HiRes qw(time); };
@@ -159,8 +161,8 @@ sub out { $_[0]->{out} } # -:
sub _server { $_[0]->c->base_server } # -: a
sub _remote_host { $_[0]->c->get_remote_host } # -: a
-sub _remote_ip { $_[0]->c->remote_ip } # -: a
-sub _remote_port { $_[0]->c->remote_addr->port } # -: a
+sub _remote_ip { APACHE24 ? $_[0]->c->client_ip : $_[0]->c->remote_ip; } # -: a
+sub _remote_port { APACHE24 ? $_[0]->c->client_addr->port : $_[0]->c->remote_addr->port } # -: a
sub send_buffer { # -: A
Modified: spamassassin/trunk/spamd-apache2/lib/Mail/SpamAssassin/Spamd/Apache2/AclIP.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/spamd-apache2/lib/Mail/SpamAssassin/Spamd/Apache2/AclIP.pm?rev=1681228&r1=1681227&r2=1681228&view=diff
==============================================================================
--- spamassassin/trunk/spamd-apache2/lib/Mail/SpamAssassin/Spamd/Apache2/AclIP.pm (original)
+++ spamassassin/trunk/spamd-apache2/lib/Mail/SpamAssassin/Spamd/Apache2/AclIP.pm Fri May 22 20:16:45 2015
@@ -6,6 +6,9 @@ use Apache2::Const -compile => qw(OK FOR
use Apache2::Module ();
use Apache2::ServerRec ();
+use Apache::Test;
+use constant APACHE24 => have_min_apache_version('2.4.0');
+
use Mail::SpamAssassin::Logger;
=head1 NAME
@@ -61,14 +64,17 @@ sub handler {
# my $ip = NetAddr::IP::Lite->new($c->remote_ip)
# or return Apache2::Const::SERVER_ERROR; # log it, shouldn't happen
- my $remote = $c->remote_addr;
+ #use Apache::Test have_min_apache_version to support MP under Apache 2.2 and 2.4
+ my $remote = APACHE24 ? $c->client_addr : $c->remote_addr;
+
for my $allowed (@{ $srv_cfg->{allowed_networks} }) {
# depends on allowed_ips format; TODO; if NetAddr::IP::Lite:
# return Apache2::Const::OK if $allowed->contains($ip);
return Apache2::Const::OK if $allowed->test($remote);
}
- info(sprintf "access denied for '%s'", $c->remote_ip);
+ info(sprintf "access denied for '%s'", APACHE24 ? $c->client_ip : $c->remote_ip);
+
return Apache2::Const::FORBIDDEN;
}
Modified: spamassassin/trunk/spamd-apache2/lib/Mail/SpamAssassin/Spamd/Apache2/AclRFC1413.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/spamd-apache2/lib/Mail/SpamAssassin/Spamd/Apache2/AclRFC1413.pm?rev=1681228&r1=1681227&r2=1681228&view=diff
==============================================================================
--- spamassassin/trunk/spamd-apache2/lib/Mail/SpamAssassin/Spamd/Apache2/AclRFC1413.pm (original)
+++ spamassassin/trunk/spamd-apache2/lib/Mail/SpamAssassin/Spamd/Apache2/AclRFC1413.pm Fri May 22 20:16:45 2015
@@ -7,6 +7,9 @@ use Apache2::RequestUtil (); # Reques
use Apache2::RequestRec ();
use Apache2::Access (); # $r->get_remote_logname
+use Apache::Test;
+use constant APACHE24 => have_min_apache_version('2.4.0');
+
use APR::SockAddr (); # $c->remote_addr->...
use APR::Table (); # $c->notes
@@ -69,8 +72,8 @@ sub handler {
unless (defined $remote_user && length $remote_user) {
warn 'rfc1413 check: failed to obtain info for '
- . $c->remote_addr->ip_get() . ':'
- . $c->remote_addr->port() . "\n";
+ . APACHE24 ? $c->client_addr->ip_get() : $c->remote_addr->ip_get() . ':'
+ . APACHE24 ? $c->client_addr->port() : $c->remote_addr->port() . "\n";
return Apache2::Const::FORBIDDEN;
}
@@ -93,14 +96,14 @@ sub check_ident {
my ($c, $user) = @_;
my $remote_user = $c->notes->{remote_user};
die "rfc1413 check: no query result for user=$user ip="
- . $c->remote_addr->ip_get()
+ . APACHE24 ? $c->client_addr->ip_get() : $c->remote_addr->ip_get()
. ' port='
- . $c->remote_addr->port()
+ . APACHE24 ? $c->client_addr->port() : $c->remote_addr->port()
unless defined $remote_user && length $remote_user;
return $remote_user if $user eq $remote_user;
warn "ident mismatch for [$user] from "
- . $c->remote_addr->ip_get() . ':'
- . $c->remote_addr->port()
+ . APACHE24 ? $c->client_addr->ip_get() : $c->remote_addr->ip_get() . ':'
+ . APACHE24 ? $c->client_addr->port() : $c->remote_addr->port()
. "; remote identd returned [$remote_user]\n";
0;
}