Sniffer::Connection::HTTP - Callbacks for a HTTP connection
You shouldn't use this directly but via Sniffer::HTTP which encapsulates most of this.
my $sniffer = Sniffer::Connection::HTTP->new( callbacks => { request => sub { my ($req,$conn) = @_; print $req->uri,"\n" if $req }, response => sub { my ($res,$req,$conn) = @_; print $res->code,"\n" }, } ); # retrieve TCP packet in $tcp, for example via Net::Pcap my $tcp = sniff_tcp_packet; $sniffer->handle_packet($tcp);
Think about pipelined connections. These are not easily massaged into the request/response scheme. Well, maybe they are, with a bit of hidden logic here.
Every response accumulates all data in memory instead of giving the user the partial response so it can be written to disk. This should maybe later be improved.
The whole module suite has almost no tests.
If you experience problems, please supply me with a complete, relevant packet dump as the included dump-raw.pl creates. Even better, supply me with (failing) tests.
dump-raw.pl
Max Maischein (corion@cpan.org)
Copyright (C) 2005-2011 Max Maischein. All Rights Reserved.
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Sniffer::HTTP, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Sniffer::HTTP
CPAN shell
perl -MCPAN -e shell install Sniffer::HTTP
For more information on module installation, please visit the detailed CPAN module installation guide.