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.
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;
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;