]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
[BUG] Fix empty X-Forwarded-For header name when set in defaults section
authorWilly Tarreau <w@1wt.eu>
Sat, 23 Aug 2008 06:18:21 +0000 (08:18 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 26 Aug 2008 11:22:19 +0000 (13:22 +0200)
The following patch introduced a minor bug :
   [MINOR] permit renaming of x-forwarded-for header

If "option forwardfor" is declared in a defaults section, the header name
is never set and we see an empty header name before the value. Also, the
header name was not reset between two defaults sections.

src/cfgparse.c

index 78783c0477f449d30e52e10e1a0c5ee4d74b9611..5f4e1238a3b18cf9166126ec2c4c9f1a94be9a3f 100644 (file)
@@ -637,6 +637,11 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int inv)
                curproxy->except_net = defproxy.except_net;
                curproxy->except_mask = defproxy.except_mask;
 
+               if (defproxy.fwdfor_hdr_len) {
+                       curproxy->fwdfor_hdr_len  = defproxy.fwdfor_hdr_len;
+                       curproxy->fwdfor_hdr_name = strdup(defproxy.fwdfor_hdr_name);
+               }
+
                if (curproxy->cap & PR_CAP_FE) {
                        curproxy->maxconn = defproxy.maxconn;
                        curproxy->backlog = defproxy.backlog;
@@ -721,6 +726,8 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int inv)
                free(defproxy.capture_name);
                free(defproxy.monitor_uri);
                free(defproxy.defbe.name);
+               free(defproxy.fwdfor_hdr_name);
+               defproxy.fwdfor_hdr_len = 0;
 
                for (rc = 0; rc < HTTP_ERR_SIZE; rc++)
                        free(defproxy.errmsg[rc].str);