From: Tim Duesterhus Date: Mon, 5 Feb 2018 19:52:27 +0000 (+0100) Subject: DOC: cfgparse: Warn on option (tcp|http)log in backend X-Git-Tag: v1.9-dev1~421 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9ad9f3517ee9e4289a003941a49cf52bd06314e3;p=thirdparty%2Fhaproxy.git DOC: cfgparse: Warn on option (tcp|http)log in backend The option does not seem to have any effect since at least haproxy 1.3. Also the `log-format` directive already warns when being used in a backend. --- diff --git a/doc/configuration.txt b/doc/configuration.txt index 7cc5c13cea..51a1493d80 100644 --- a/doc/configuration.txt +++ b/doc/configuration.txt @@ -6071,7 +6071,7 @@ no option httpclose option httplog [ clf ] Enable logging of HTTP request, session state and timers May be used in sections : defaults | frontend | listen | backend - yes | yes | yes | yes + yes | yes | yes | no Arguments : clf if the "clf" argument is added, then the output format will be the CLF format instead of HAProxy's default HTTP format. You can @@ -6087,8 +6087,6 @@ option httplog [ clf ] frontend, backend and server name, and of course the source address and ports. - This option may be set either in the frontend or the backend. - Specifying only "option httplog" will automatically clear the 'clf' mode if it was set by default. @@ -6938,7 +6936,7 @@ option tcpka option tcplog Enable advanced logging of TCP connections with session state and timers May be used in sections : defaults | frontend | listen | backend - yes | yes | yes | yes + yes | yes | yes | no Arguments : none By default, the log output format is very poor, as it only contains the @@ -6950,8 +6948,6 @@ option tcplog find which of the client or server disconnects or times out. For normal HTTP proxies, it's better to use "option httplog" which is even more complete. - This option may be set either in the frontend or the backend. - "option tcplog" overrides any previous "log-format" directive. See also : "option httplog", and section 8 about logging. diff --git a/src/cfgparse.c b/src/cfgparse.c index 17b1dd0360..40facd5da8 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -4827,6 +4827,12 @@ stats_error_parsing: free(curproxy->conf.lfs_file); curproxy->conf.lfs_file = strdup(curproxy->conf.args.file); curproxy->conf.lfs_line = curproxy->conf.args.line; + + if (curproxy != &defproxy && !(curproxy->cap & PR_CAP_FE)) { + ha_warning("parsing [%s:%d] : backend '%s' : 'option httplog' directive is ignored in backends.\n", + file, linenum, curproxy->id); + err_code |= ERR_WARN; + } } else if (!strcmp(args[1], "tcplog")) { if (curproxy->conf.logformat_string && curproxy == &defproxy) { @@ -4854,6 +4860,12 @@ stats_error_parsing: if (alertif_too_many_args_idx(0, 1, file, linenum, args, &err_code)) goto out; + + if (curproxy != &defproxy && !(curproxy->cap & PR_CAP_FE)) { + ha_warning("parsing [%s:%d] : backend '%s' : 'option tcplog' directive is ignored in backends.\n", + file, linenum, curproxy->id); + err_code |= ERR_WARN; + } } else if (!strcmp(args[1], "tcpka")) { /* enable TCP keep-alives on client and server streams */