Apache2-Proxy
view release on metacpan or search on metacpan
lib/Apache2/Proxy.pm view on Meta::CPAN
sub get_request_headers {
my ( $class, $r ) = @_;
my %headers;
$r->headers_in->do(
sub {
my $k = shift;
my $v = shift;
if ( $k =~ m/^connection/i ) {
$headers{$k} = 'keep-alive';
return 1;
}
# pass this header onto the remote request
$headers{$k} = $v;
return 1; # don't remove me or you will burn in hell baby
}
);
lib/Apache2/Proxy.pm view on Meta::CPAN
foreach my $key ( keys %{$headers} ) {
# we set this manually
next if lc($key) eq 'server';
# skip HTTP::Response inserted headers
next if substr( lc($key), 0, 6 ) eq 'client';
# let apache set these
next if substr( lc($key), 0, 10 ) eq 'connection';
next if substr( lc($key), 0, 10 ) eq 'keep-alive';
# some headers have an unecessary newline appended so chomp the value
chomp( $headers->{$key} );
if ( $headers->{$key} =~ m/\n/ ) {
$headers->{$key} =~ s/\n/ /g;
}
$r->log->debug(
"$$ Setting header key $key, value " . $headers->{$key} )
if VERBOSE_DEBUG;
lib/Apache2/Proxy.pm view on Meta::CPAN
# convert headers to array-ref if a hash-ref is passed
$headers = [%$headers] if ( ref $headers eq 'HASH' );
my $http = Net::HTTP->new(
Host => $url->host,
PeerAddr => $host,
PeerPort => $port
) || die $@;
# set keep alive
$http->keep_alive(1);
# reinforce the point (Net::HTTP adds PeerPort to host during
# new())
$http->host( $url->host );
# make the request
my $req = $url->path_query || "/";
my $ok = $http->write_request( GET => $req, @$headers );
# get the result code, message and response headers
( run in 0.740 second using v1.01-cache-2.11-cpan-df04353d9ac )