From: Frédéric Lécaille <[email protected]>
Use ->local "peers" struct member to flag a "peers" section frontend
has being initialized. This is to be able to initialize the frontend
of "peers" sections on lines different from "peer" lines.
May be backported to 1.5 and newer.
---
src/cfgparse.c | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/src/cfgparse.c b/src/cfgparse.c
index 04e36e8c..e3e96b51 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -648,9 +648,16 @@ int cfg_parse_peers(const char *file, int linenum, char
**args, int kwm)
/* We are done. */
goto out;
+ if (cfg_peers->local) {
+ ha_alert("parsing [%s:%d] : '%s %s' : local peer name
already referenced at %s:%d.\n",
+ file, linenum, args[0], args[1],
+ curpeers->peers_fe->conf.file,
curpeers->peers_fe->conf.line);
+ err_code |= ERR_FATAL;
+ goto out;
+ }
+
/* Current is local peer, it define a frontend */
newpeer->local = 1;
- cfg_peers->local = newpeer;
if (!curpeers->peers_fe) {
if (init_peers_frontend(file, linenum, args[1],
curpeers) != 0) {
@@ -683,13 +690,7 @@ int cfg_parse_peers(const char *file, int linenum, char
**args, int kwm)
l->options |= LI_O_UNLIMITED; /* don't make the
peers subject to global limits */
global.maxsock += l->maxconn;
}
- }
- else {
- ha_alert("parsing [%s:%d] : '%s %s' : local peer name
already referenced at %s:%d.\n",
- file, linenum, args[0], args[1],
- curpeers->peers_fe->conf.file,
curpeers->peers_fe->conf.line);
- err_code |= ERR_FATAL;
- goto out;
+ cfg_peers->local = newpeer;
}
} /* neither "peer" nor "peers" */
else if (!strcmp(args[0], "disabled")) { /* disables this peers
section */
--
2.11.0