From d289240085a5aaed6f403c9512008ccf16fab0a6 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Sun, 6 Dec 2009 13:10:44 +0100 Subject: [PATCH] [BUG] config: fix error message when config file is not found Cameron Simpson reported an annoying case where haproxy simply reports "Error(s) found in configuration file" when the file is not found or not readable. Fortunately the parsing function still returns -1 in case of open error, so we're able to detect the issue from the caller and report the corresponding errno message. (cherry picked from commit c438242878c8bdabffaef62dd2859920cc3e7d26) --- src/haproxy.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/haproxy.c b/src/haproxy.c index 0f16bac1fe..a7b09898d9 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -543,7 +543,15 @@ void init(int argc, char **argv) init_default_instance(); for (i = 0; i < cfg_nbcfgfiles; i++) { - err_code |= readcfgfile(cfg_cfgfile[i]); + int ret; + + ret = readcfgfile(cfg_cfgfile[i]); + if (ret == -1) { + Alert("Could not open configuration file %s : %s\n", + cfg_cfgfile[i], strerror(errno)); + exit(1); + } + err_code |= ret; if (err_code & (ERR_ABORT|ERR_FATAL)) Alert("Error(s) found in configuration file : %s\n", cfg_cfgfile[i]); if (err_code & ERR_ABORT)