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;
 }