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.
diff --git a/include/types/backend.h b/include/types/backend.h
index 3271eea..e67f0be 100644
--- a/include/types/backend.h
+++ b/include/types/backend.h
@@ -146,6 +146,9 @@
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 4a6c73b..9774bba 100644
--- a/src/cfgparse-listen.c
+++ b/src/cfgparse-listen.c
@@ -467,9 +467,14 @@
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;