next;
}
# fill in content
- $content = $self->_substitute_port($content);
+ $content = $self->_substitute_port($content) if defined $content;
$resp->content($content);
print STDERR "HTTP::Response with content: \n", $resp->as_string if $log;
}
return 1 unless exists $url_rec->{'request_headers'};
for my $hdrname (keys %{$url_rec->{'request_headers'}}) {
- my $rhdr = $req->header ($hdrname);
+ my $must_not_match;
my $ehdr = $url_rec->{'request_headers'}{$hdrname};
- unless (defined $rhdr && $rhdr =~ $ehdr) {
- print STDERR "\n*** Mismatch on $hdrname: $rhdr =~ $ehdr\n";
- return undef;
+ if ($must_not_match = ($hdrname =~ /^!(\w+)/)) {
+ $hdrname = $1;
+ }
+ my $rhdr = $req->header ($hdrname);
+ if ($must_not_match) {
+ if (defined $rhdr && $rhdr =~ $ehdr) {
+ $rhdr = '' unless defined $rhdr;
+ print STDERR "\n*** Match forbidden $hdrname: $rhdr =~ $ehdr\n";
+ return undef;
+ }
+ } else {
+ unless (defined $rhdr && $rhdr =~ $ehdr) {
+ $rhdr = '' unless defined $rhdr;
+ print STDERR "\n*** Mismatch on $hdrname: $rhdr =~ $ehdr\n";
+ return undef;
+ }
}
}