]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
[MINOR] tarpit timeout is also allowed in backends
authorWilly Tarreau <w@1wt.eu>
Sun, 6 Jan 2008 12:40:03 +0000 (13:40 +0100)
committerWilly Tarreau <w@1wt.eu>
Sun, 6 Jan 2008 12:40:03 +0000 (13:40 +0100)
Since the tarpit action may be set in backends too, its timeout
must be configurable there.

doc/configuration.txt
src/cfgparse.c
src/proxy.c

index 3cd48d366379265125e4950e166b572d891d6219..497e58e6618ac8aae84be59ce23c458ba12b4023 100644 (file)
@@ -607,7 +607,7 @@ timeout httpreq             X          X         X         -
 timeout queue               X          -         X         X
 timeout server              X          -         X         X
 timeout srvtimeout          X          -         X         X  (deprecated)
-timeout tarpit              X          X         X         -
+timeout tarpit              X          X         X         X
 transparent                 X          X         X         -
 use_backend                 -          X         X         -
 usesrc                      X          -         X         X
index b9cf62f07e44ab052ce9223392f49ba72785b889..0c89c5bb8cf2045be60706961ab8758189b11474 100644 (file)
@@ -680,6 +680,7 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int inv)
                        curproxy->timeout.connect = defproxy.timeout.connect;
                        curproxy->timeout.server = defproxy.timeout.server;
                        curproxy->timeout.queue = defproxy.timeout.queue;
+                       curproxy->timeout.tarpit = defproxy.timeout.tarpit;
                        curproxy->source_addr = defproxy.source_addr;
                }
 
@@ -2761,9 +2762,8 @@ int readcfgfile(const char *file)
                 * parameters have been set or must be copied from contimeouts.
                 */
                if (curproxy != &defproxy) {
-                       if ((curproxy->cap & PR_CAP_FE) &&
-                           (!tv_isset(&curproxy->timeout.tarpit) ||
-                            __tv_iseq(&curproxy->timeout.tarpit, &defproxy.timeout.tarpit))) {
+                       if (!tv_isset(&curproxy->timeout.tarpit) ||
+                           __tv_iseq(&curproxy->timeout.tarpit, &defproxy.timeout.tarpit)) {
                                /* tarpit timeout not set. We search in the following order:
                                 * default.tarpit, curr.connect, default.connect.
                                 */
index e2e6b15fcc4b66d8b7923feacb23f0bdc3efe3a9..7019606f0ddcf2a346963849d0a8985e787cb351 100644 (file)
@@ -103,7 +103,7 @@ int proxy_parse_timeout(const char **args, struct proxy *proxy,
        } else if (!strcmp(args[0], "tarpit")) {
                tv = &proxy->timeout.tarpit;
                td = &defpx->timeout.tarpit;
-               cap = PR_CAP_FE;
+               cap = PR_CAP_FE | PR_CAP_BE;
        } else if (!strcmp(args[0], "http-request")) {
                tv = &proxy->timeout.httpreq;
                td = &defpx->timeout.httpreq;