--- Mireo.pm 2007/10/15 21:14:50 1 +++ lib/Net/Analysis/Listener/Maps.pm 2008/09/29 13:43:37 35 @@ -1,10 +1,12 @@ -package Net::Analysis::Listener::Mireo; +package Net::Analysis::Listener::Maps; use strict; use warnings; use base qw(Net::Analysis::Listener::Base); use File::Slurp; +my $i = 0; + sub http_transaction { my ($self, $args) = @_; my ($req) = $args->{req}; # isa HTTP::Request @@ -12,24 +14,39 @@ my ($req_mono) = $args->{req_mono}; # isa Net::Analysis::TCPMonologue my ($resp_mono) = $args->{resp_mono}; # isa Net::Analysis::TCPMonologue - # Print out time between sending last part of request, and receiving - # first part of response. - # (Note; these are Net::Analsysis::Time objects) - my ($network_wait_time) = $resp_mono->t_start() - $req_mono->t_end(); - printf "%-50.50s: %8.2f\n", $req->uri(), $network_wait_time; + my $file; if ( $req->uri() =~ m!/GElin/MapSrv\.aspx\?lwM=(\d+)&twM=(\d+)&zf=(\d+)! ) { + # Mireo + $file = "$3/$1-$2.gif"; + } elsif ( $req->uri() =~ m!/mt\?.*x=(\d+).*?&y=(\d+).*?&z=(\d+)! ) { + # Google maps + $file = "$3/$1-$2.png"; + } elsif ( $req->uri() =~ m!/aerial.maps.yimg.com/img.*&x=(\d+)&y=(\d+)&z=(\d+)&v=1\.7! ) { + # Yahoo maps + $file = "$3/$1-$2.jpg"; + } elsif ( $req->uri() =~ m!/GElin/mireo.NET.MapSearchWeb! ) { + $file = "foo$i"; + $i++; + } + + if ( $file ) { mkdir "dump" unless -e "dump"; mkdir "dump/$3" unless -e "dump/$3"; - write_file( "dump/$3/$1-$2.gif", $resp->content ); + write_file( "dump/$file", $resp->content ); + print "$1x$2 zoom: $3 -> $file ", -s "dump/$file", " bytes\n"; + } else { + print ">> ",$req->uri, "\n"; } + + } 1; =head1 NAME -Net::Analysis::Listener::Mireo - looking at HTTP transactions +Net::Analysis::Listener::Maps - looking at HTTP transactions - $ perl -MNet::Analysis -e main HTTP Mireo t/t1_google.tcp + $ perl -MNet::Analysis -e main HTTP Maps maps_dump.tcp