From 79f5fe82f8082b8b716a29189b7d46961d2ad8df Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Sat, 23 Aug 2008 08:18:21 +0200 Subject: [PATCH] [BUG] Fix empty X-Forwarded-For header name when set in defaults section 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 | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/cfgparse.c b/src/cfgparse.c index 78783c047..5f4e1238a 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -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);