mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-03-03 01:49:24 +00:00
BUG/MINOR: peers: init bind_proc to 1 if it wasn't initialized
Tim reported that in master-worker mode, if a stick-table is declared but not used in the configuration, its associated peers listener won't bind. This problem is due the fact that the master-worker and the daemon mode, depend on the bind_proc field of the peers proxy to disable the listener. Unfortunately the bind_proc is left to 0 if no stick-table were used in the configuration, stopping the listener on all processes. This fixes sets the bind_proc to the first process if it wasn't initialized. Should fix bug #558. Should be backported as far as 1.8.
This commit is contained in:
parent
4fed93eb72
commit
a2cfd7e356
@ -3907,6 +3907,19 @@ out_uri_auth_compat:
|
|||||||
struct peers *curpeers = cfg_peers, **last;
|
struct peers *curpeers = cfg_peers, **last;
|
||||||
struct peer *p, *pb;
|
struct peer *p, *pb;
|
||||||
|
|
||||||
|
/* In the case the peers frontend was not initialized by a
|
||||||
|
stick-table used in the configuration, set its bind_proc
|
||||||
|
by default to the first process. */
|
||||||
|
while (curpeers) {
|
||||||
|
if (!curpeers->peers_fe)
|
||||||
|
continue;
|
||||||
|
if (curpeers->peers_fe->bind_proc == 0)
|
||||||
|
curpeers->peers_fe->bind_proc = 1;
|
||||||
|
|
||||||
|
curpeers = curpeers->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
curpeers = cfg_peers;
|
||||||
/* Remove all peers sections which don't have a valid listener,
|
/* Remove all peers sections which don't have a valid listener,
|
||||||
* which are not used by any table, or which are bound to more
|
* which are not used by any table, or which are bound to more
|
||||||
* than one process.
|
* than one process.
|
||||||
|
Loading…
Reference in New Issue
Block a user