Commit Diff
Diff:
a12d6ff257813d47657d53f00699d21bfaf0e301
f38a9035e5439cb395b2de6b9bdfa36102bfe80c
f38a9035e5439cb395b2de6b9bdfa36102bfe80c
Commit:
f38a9035e5439cb395b2de6b9bdfa36102bfe80c
Tree:
00cf9c032ffe7f5e1d61ec99b93ef6826933f459
Committer:
Alexander Barton <alex@barton.de>
Date:
Tue Sep 11 09:40:47 2012
UTC
Message:
Show a warning on startup if config file is not a full path
ngIRCd is a long-running process and changes its working directory to "/" to
not block mounted filesystems and the like when running as daemon ("not in the
foreground"); therefore the path to the configuration file must be relative to
"/" (or the chroot() directory), which basically is "not relative", to ensure
that "kill -HUP" and the "REHASH" command work as expected later on.
This fixes parts of bug #127.
--- src/ngircd/conf.c
+++ src/ngircd/conf.c
@@ -1911,6 +1911,13 @@ Validate_Config(bool Configtest, bool Rehash)
bool config_valid = true;
char *ptr;
+ /* Emit a warning when the config file is not a full path name */
+ if (NGIRCd_ConfFile[0] && NGIRCd_ConfFile[0] != '/') {
+ Config_Error(LOG_WARNING,
+ "Not specifying a full path name to \"%s\" can cause problems when rehashing the server!",
+ NGIRCd_ConfFile);
+ }
+
/* Validate configured server name, see RFC 2812 section 2.3.1 */
ptr = Conf_ServerName;
do {