From 6df4298e93f54ef6a284f5e58666c6158f472fed Mon Sep 17 00:00:00 2001 From: Tim Ruehsen Date: Fri, 9 Nov 2012 15:50:03 +0100 Subject: [PATCH 1/2] added check for must-not-match request-header --- tests/HTTPServer.pm | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/tests/HTTPServer.pm b/tests/HTTPServer.pm index 627c102..065ea1e 100644 --- a/tests/HTTPServer.pm +++ b/tests/HTTPServer.pm @@ -218,12 +218,24 @@ sub verify_request_headers { 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) { - $rhdr = '' unless defined $rhdr; - 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; + } } } -- 1.7.10.4