From 3507d5d09676239b68d3620441814fe8483bd265 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 9 May 2014 13:54:22 +0200 Subject: [PATCH] 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. --- src/cfgparse.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) 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; } } -- 2.39.5