commit - ab1f48a34668295275b794f1cc09839acc445c2b
commit + abb1abeb772c0876655c066d396f92ee46292c62
blob - b562638204152e42f39ed2fc61cfbb8daafb81a3
blob + 736ef7c18ecab160716c5a377f742a5c73fd2ec6
--- ChangeLog
+++ ChangeLog
ngIRCd HEAD
+ - Do not exit on SIGHUP or /REHASH if the config file cannot opened.
- Add IPv6 support.
- Install a LaunchDaemon script to start/stop ngIRCd on Mac OS X.
- Implemented IRC commands INFO, SUMMON (dummy), and USERS (dummy) and
--
-$Id: ChangeLog,v 1.344 2008/02/26 22:05:42 fw Exp $
+$Id: ChangeLog,v 1.345 2008/03/18 20:12:47 fw Exp $
blob - 3239dd140d70692acb90a6528a1b170d642d15a6
blob + 0f6686221696f463eccd11097aa488fd8121bcbc
--- src/ngircd/conf.c
+++ src/ngircd/conf.c
#include "portab.h"
-static char UNUSED id[] = "$Id: conf.c,v 1.104 2008/02/26 22:04:17 fw Exp $";
+static char UNUSED id[] = "$Id: conf.c,v 1.105 2008/03/18 20:12:47 fw Exp $";
#include "imp.h"
#include <assert.h>
static void Set_Defaults PARAMS(( bool InitServers ));
-static void Read_Config PARAMS(( void ));
+static bool Read_Config PARAMS(( bool ngircd_starting ));
static void Validate_Config PARAMS(( bool TestOnly, bool Rehash ));
static void Handle_GLOBAL PARAMS(( int Line, char *Var, char *Arg ));
GLOBAL void
Conf_Init( void )
{
- Set_Defaults( true );
- Read_Config( );
+ Read_Config( true );
Validate_Config(false, false);
} /* Config_Init */
-GLOBAL void
+GLOBAL bool
Conf_Rehash( void )
{
- Set_Defaults( false );
- Read_Config( );
+ if (!Read_Config(false))
+ return false;
Validate_Config(false, true);
/* Update CLIENT structure of local server */
Client_SetInfo(Client_ThisServer(), Conf_ServerInfo);
+ return true;
} /* Config_Rehash */
char *topic;
Use_Log = false;
- Set_Defaults( true );
- Read_Config( );
+ Read_Config( true );
Validate_Config(true, false);
/* If stdin and stdout ("you can read our nice message and we can
} /* Set_Defaults */
-static void
-Read_Config( void )
+static bool
+Read_Config( bool ngircd_starting )
{
/* Read configuration file. */
/* No configuration file found! */
Config_Error( LOG_ALERT, "Can't read configuration \"%s\": %s",
NGIRCd_ConfFile, strerror( errno ));
+ if (!ngircd_starting)
+ return false;
Config_Error( LOG_ALERT, "%s exiting due to fatal errors!", PACKAGE_NAME );
exit( 1 );
}
+ Set_Defaults( ngircd_starting );
+
Config_Error( LOG_INFO, "Reading configuration from \"%s\" ...", NGIRCd_ConfFile );
/* Clean up server configuration structure: mark all already
exit( 1 );
}
}
+ return true;
} /* Read_Config */
blob - b6a5a2acf87766d85fb0265141ad4dd82c3623be
blob + d505f3390db01625f259d565bf7c9dffc4cc26dd
--- src/ngircd/conf.h
+++ src/ngircd/conf.h
* (at your option) any later version.
* Please read the file COPYING, README and AUTHORS for more information.
*
- * $Id: conf.h,v 1.48 2008/02/26 22:04:17 fw Exp $
+ * $Id: conf.h,v 1.49 2008/03/18 20:12:47 fw Exp $
*
* Configuration management (header)
*/
GLOBAL unsigned int Conf_MaxNickLength;
GLOBAL void Conf_Init PARAMS((void));
-GLOBAL void Conf_Rehash PARAMS((void));
+GLOBAL bool Conf_Rehash PARAMS((void));
GLOBAL int Conf_Test PARAMS((void));
GLOBAL void Conf_UnsetServer PARAMS(( CONN_ID Idx ));
blob - 73c9a15138f7b6e198b0a166c976d767216a846f
blob + bb88b3b97fca68641c04c6095822fa828863346d
--- src/ngircd/ngircd.c
+++ src/ngircd/ngircd.c
#include "portab.h"
-static char UNUSED id[] = "$Id: ngircd.c,v 1.118 2008/02/26 22:04:17 fw Exp $";
+static char UNUSED id[] = "$Id: ngircd.c,v 1.119 2008/03/18 20:12:47 fw Exp $";
/**
* @file
Log( LOG_NOTICE|LOG_snotice, "Re-reading configuration NOW!" );
NGIRCd_SignalRehash = false;
- /* Close down all listening sockets */
- Conn_ExitListeners( );
-
/* Remember old server name and nick name length */
strlcpy( old_name, Conf_ServerName, sizeof old_name );
old_nicklen = Conf_MaxNickLength;
/* Re-read configuration ... */
- Conf_Rehash( );
+ if (!Conf_Rehash( ))
+ return;
+ /* Close down all listening sockets */
+ Conn_ExitListeners( );
+
/* Recover old server name and nick name length: these values can't
* be changed during run-time */
if (strcmp(old_name, Conf_ServerName) != 0 ) {