--- /dev/null
+# test appending headers, both directions
+
+use strict;
+use warnings;
+
+my %header_client = (
+ "X-Header-Client" => "ABC",
+);
+my %header_server = (
+ "X-Header-Server" => "XYZ",
+);
+our %args = (
+ client => {
+ func => \&http_client,
+ header => \%header_client,
+ loggrep => {
+ "X-Header-Server: XYZ" => 1,
+ "X-Header-Server: xyz" => 1,
+ },
+ },
+ relayd => {
+ protocol => [ "http",
+ 'match request header append "X-Header-Client" value "abc"',
+ 'match response header append "X-Header-Server" value "xyz"',
+ 'match request header log "X-Header*"',
+ 'match response header log "X-Header*"',
+ ],
+ loggrep => { qr/ (?:done|last write \(done\)), \[X-Header-Client: ABC\]\ \[X-Header-Server: XYZ\]/ => 1 },
+ },
+ server => {
+ func => \&http_server,
+ header => \%header_server,
+ loggrep => {
+ "X-Header-Client: ABC" => 1,
+ "X-Header-Client: abc" => 1,
+ },
+ },
+);
+
+1;
-/* $OpenBSD: relay_http.c,v 1.26 2014/07/12 14:34:13 reyk Exp $ */
+/* $OpenBSD: relay_http.c,v 1.27 2014/07/12 15:47:18 benno Exp $ */
/*
* Copyright (c) 2006 - 2014 Reyk Floeter <reyk@openbsd.org>
if (kv_set(match, "%s",
kv->kv_value) == -1)
goto fail;
- } else {
- if (kv_setkey(match, "%s,%s",
- match->kv_key, kv->kv_key) == -1)
- goto fail;
- }
+ } else
+ addkv = 1;
break;
default:
/* query, url not supported */