home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2004 December / PCpro_2004_12.ISO / files / webserver / xampp / xampp-perl-addon-1.4.9-installer.exe / SquidRemoteAddr.pm < prev    next >
Encoding:
Perl POD Document  |  2001-07-13  |  895 b   |  42 lines

  1. package Apache::HeavyCGI::SquidRemoteAddr;
  2. use Apache::Constants qw(:common);
  3. use constant SRA_DEBUG => 0;
  4. use strict;
  5. use vars qw($VERSION $NoHeader_warned);
  6. $VERSION = sprintf "%d.%03d", q$Revision: 1.5 $ =~ /(\d+)\.(\d+)/;
  7.  
  8.  
  9. sub handler {
  10.   my $r = shift;
  11.  
  12.   my $xff = $r->header_in('X-Forwarded-For')||"";
  13.   if (my($ip) = $xff =~ /([^,\s]+)$/) {
  14.     $r->connection->remote_ip($ip);
  15.   } else {
  16.     warn sprintf "No IP in X-Forwarded-For[%s]", $xff
  17.     unless $NoHeader_warned++;
  18.   }
  19.   warn sprintf "HERE Headers[%s]", join " ", $r->headers_in if SRA_DEBUG;
  20.  
  21.   DECLINED;
  22. }
  23.  
  24. 1;
  25.  
  26. __END__
  27.  
  28. =head1 NAME
  29.  
  30. Apache::HeavyCGI::SquidRemoteAddr - Pass X-Forwarded-For Header through as remote_ip
  31.  
  32. =head1 SYNOPSIS
  33.  
  34.  PerlPostReadRequestHandler  Apache::HeavyCGI::SquidRemoteAddr
  35.  
  36. =head1 DESCRIPTION
  37.  
  38. Author Vivek Khera, taken from his mod_perl_tuning document.
  39.  
  40. =cut
  41.  
  42.