Apache-HeavyCGI

 view release on metacpan or  search on metacpan

lib/Apache/HeavyCGI/SquidRemoteAddr.pm  view on Meta::CPAN

package Apache::HeavyCGI::SquidRemoteAddr;
use Apache::Constants qw(:common);
use constant SRA_DEBUG => 0;
use strict;
use vars qw($VERSION $NoHeader_warned);
$VERSION = sprintf "%d.%03d", q$Revision: 1.5 $ =~ /(\d+)\.(\d+)/;


sub handler {
  my $r = shift;

  my $xff = $r->header_in('X-Forwarded-For')||"";
  if (my($ip) = $xff =~ /([^,\s]+)$/) {
    $r->connection->remote_ip($ip);
  } else {
    warn sprintf "No IP in X-Forwarded-For[%s]", $xff
	unless $NoHeader_warned++;
  }
  warn sprintf "HERE Headers[%s]", join " ", $r->headers_in if SRA_DEBUG;

  DECLINED;
}

1;

__END__

=head1 NAME

Apache::HeavyCGI::SquidRemoteAddr - Pass X-Forwarded-For Header through as remote_ip

=head1 SYNOPSIS

 PerlPostReadRequestHandler  Apache::HeavyCGI::SquidRemoteAddr

=head1 DESCRIPTION

Author Vivek Khera, taken from his mod_perl_tuning document.

=cut



( run in 2.409 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )