Commit Diff
Diff:
a12d6ff257813d47657d53f00699d21bfaf0e301
f38a9035e5439cb395b2de6b9bdfa36102bfe80c
Commit:
f38a9035e5439cb395b2de6b9bdfa36102bfe80c
Tree:
00cf9c032ffe7f5e1d61ec99b93ef6826933f459
Author:
Alexander Barton <alex@barton.de>
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.
blob - 034281c06a86ac7c42bc3edb6adffcaa3fb0d0ae
blob + 627e6d3fbf22557d695478ffe2a507b5fafe2a4d
--- 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 {
IRCNow