+ my $headers;
+
+ while ( my $header = <$sock> ) {
+ $request .= $header;
+ chomp $header;
+ last if $header =~ m{^\s*$};
+ my ( $n, $v ) = split(/:\s*/, $header);
+ $v =~ s/[\r\n]+$//;
+ $headers->{ lc $n } = $v;
+ }
+
+ warn "<<<< $ip START\n$request\n";
+
+ return $sock->connected unless $headers;
+
+ warn "missing $_ header\n" foreach grep { ! defined $headers->{ lc $_ } } ( 'SOAPAction' );