diff options
Diffstat (limited to 'MyProxy.pl')
-rwxr-xr-x | MyProxy.pl | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -8,6 +8,7 @@ use Log::Log4perl; use FindBin; use YAML; use Getopt::Long; +use LWP::UserAgent; my $LOGCONF="$FindBin::Bin/log.conf"; my $PORT=3128; @@ -218,6 +219,24 @@ sub jumpFilter { } { + my $viaLogger=Log::Log4perl->get_logger('MyProxy.filter.viaProxy'); + my $ua=LWP::UserAgent->new( + keep_alive=>2, + parse_head=>0, + ); + $ua->proxy('http','http://exelion:3128/'); + $ua->requests_redirectable([]); +sub viaProxy { + my ($self,$headers,$request)=@_; + my $uri=$request->uri; + $viaLogger->debug("Forwarding $uri"); + return if $uri !~ m|^http://(.*?)bloglines.com/|; + my $response=$ua->request($request); + $self->proxy->response($response); +} +} + +{ my $socks=0; GetOptions('socks|s!' => \$socks, 'port|p=i' => \$PORT, @@ -241,6 +260,7 @@ sub jumpFilter { my $proxy=HTTP::Proxy->new(port=>$PORT,engine=>'ScoreBoard'); $proxy->push_filter(request => HTTP::Proxy::HeaderFilter::simple->new(\&doFilter)); $proxy->push_filter(request => HTTP::Proxy::HeaderFilter::simple->new(\&jumpFilter)); + #$proxy->push_filter(request => HTTP::Proxy::HeaderFilter::simple->new(\&viaProxy)); $logger->info("Running on port ".$proxy->port()); $proxy->start(); } |