+ # XXX evil security hole to eval code over web to inspect it
+ if ( $self->debug && $headers->{'user-agent'} =~ m{Mozilla} ) {
+ my $out = '';
+ if ( $request =~ m{^GET /(\$.+) HTTP/} ) {
+ my $eval = uri_unescape $1;
+ $out = dump( eval $eval );
+ $out .= "ERROR: $@\n" if $@;
+ warn "EVAL $eval = $out\n";
+ }
+ print $sock "HTTP/1.1 200 OK\r\nContent-type: text/plain\r\nConnection: close\r\n\r\n$out";
+ return 0;
+ }
+
+ my $response = $session->process_request( $ip, $body );
+
+ my $dump_nr = $dump_by_ip->{$ip}++;
+
+ if ( $self->create_dump ) {
+ mkpath "dump/$ip" unless -e "dump/$ip";
+ write_file( sprintf("dump/%s/%04d.request", $ip, $dump_nr), "$request\r\n$body" );
+ write_file( sprintf("dump/%s/%04d.response", $ip, $dump_nr ), $response );
+ }
+
+ warn ">>>> $ip START\n$response\n>>>> $ip END\n";
+ print $sock $response;
+
+ return $sock->connected;