From: Willy Tarreau Date: Fri, 9 May 2014 11:54:22 +0000 (+0200) Subject: MEDIUM: proxy: only adjust the backend's bind-process when already set X-Git-Tag: v1.5-dev25~24 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3507d5d;p=thirdparty%2Fhaproxy.git MEDIUM: proxy: only adjust the backend's bind-process when already set By default, a proxy's bind_proc is zero, meaning "bind to all processes". It's only when not zero that its process list is restricted. So we don't want the frontends to enforce the value on the backends when the backends are still set to zero. --- diff --git a/src/cfgparse.c b/src/cfgparse.c index 90825c0679..7f11bf8842 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -5948,8 +5948,9 @@ int check_config_validity() /* we force the backend to be present on at least all of * the frontend's processes. */ - target->bind_proc = curproxy->bind_proc ? - (target->bind_proc | curproxy->bind_proc) : 0; + if (target->bind_proc) + target->bind_proc = curproxy->bind_proc ? + (target->bind_proc | curproxy->bind_proc) : 0; /* Emit a warning if this proxy also has some servers */ if (curproxy->srv) { @@ -5985,8 +5986,9 @@ int check_config_validity() /* we force the backend to be present on at least all of * the frontend's processes. */ - target->bind_proc = curproxy->bind_proc ? - (target->bind_proc | curproxy->bind_proc) : 0; + if (target->bind_proc) + target->bind_proc = curproxy->bind_proc ? + (target->bind_proc | curproxy->bind_proc) : 0; } } } @@ -6038,8 +6040,9 @@ int check_config_validity() /* we force the backend to be present on at least all of * the frontend's processes. */ - target->bind_proc = curproxy->bind_proc ? - (target->bind_proc | curproxy->bind_proc) : 0; + if (target->bind_proc) + target->bind_proc = curproxy->bind_proc ? + (target->bind_proc | curproxy->bind_proc) : 0; } }