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.
---
 doc/configuration.txt |  8 ++------
 src/cfgparse.c        | 12 ++++++++++++
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/doc/configuration.txt b/doc/configuration.txt
index 89421dbbc..ed242faa9 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 2e10e3537..0e5354c44 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 
*/
-- 
2.16.1


Reply via email to