From 20e68378f1e20112458bbee4c9c3646a74261b5a Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Mon, 14 Jan 2019 16:04:01 +0100 Subject: [PATCH] MINOR: backend: add new fields in lbprm to store more LB options Some algorithms require a few extra options (up to 3). Let's provide some room in lbprm to store them, and make sure they're passed from defaults to backends. --- include/types/backend.h | 3 +++ src/cfgparse-listen.c | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/include/types/backend.h b/include/types/backend.h index 3271eea4c..e67f0be54 100644 --- a/include/types/backend.h +++ b/include/types/backend.h @@ -146,6 +146,9 @@ struct lbprm { int wdiv; /* ratio between effective weight and user weight */ char *arg_str; /* name of the URL parameter/header/cookie used for hashing */ int arg_len; /* strlen(arg_str), computed only once */ + int arg_opt1; /* extra option 1 for the LB algo (algo-specific) */ + int arg_opt2; /* extra option 2 for the LB algo (algo-specific) */ + int arg_opt3; /* extra option 3 for the LB algo (algo-specific) */ struct server *fbck; /* first backup server when !PR_O_USE_ALL_BK, or NULL */ struct lb_map map; /* LB parameters for map-based algorithms */ struct lb_fwrr fwrr; diff --git a/src/cfgparse-listen.c b/src/cfgparse-listen.c index 4a6c73b23..9774bba5f 100644 --- a/src/cfgparse-listen.c +++ b/src/cfgparse-listen.c @@ -467,9 +467,14 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm) curproxy->rdp_cookie_name = strdup(defproxy.rdp_cookie_name); curproxy->rdp_cookie_len = defproxy.rdp_cookie_len; + if (defproxy.lbprm.arg_str) curproxy->lbprm.arg_str = strdup(defproxy.lbprm.arg_str); curproxy->lbprm.arg_len = defproxy.lbprm.arg_len; + curproxy->lbprm.arg_opt1 = defproxy.lbprm.arg_opt1; + curproxy->lbprm.arg_opt2 = defproxy.lbprm.arg_opt2; + curproxy->lbprm.arg_opt3 = defproxy.lbprm.arg_opt3; + curproxy->uri_whole = defproxy.uri_whole; curproxy->uri_len_limit = defproxy.uri_len_limit; curproxy->uri_dirs_depth1 = defproxy.uri_dirs_depth1;