+GLOBAL VOID
+NGIRCd_Rehash( VOID )
+{
+ CHAR old_name[CLIENT_ID_LEN];
+
+ Log( LOG_NOTICE|LOG_snotice, "Re-reading configuration NOW!" );
+ NGIRCd_SignalRehash = FALSE;
+
+ /* Alle Listen-Sockets schliessen */
+ Conn_ExitListeners( );
+
+ /* Alten Server-Namen merken */
+#ifdef DEBUG
+ assert( sizeof( old_name ) == sizeof( Conf_ServerName ));
+#endif
+ strcpy( old_name, Conf_ServerName );
+
+ /* Konfiguration neu lesen ... */
+ Conf_Rehash( );
+
+ /* Alten Server-Namen wiederherstellen: dieser
+ * kann nicht zur Laufzeit geaendert werden ... */
+ if( strcmp( old_name, Conf_ServerName ) != 0 )
+ {
+ strcpy( Conf_ServerName, old_name );
+ Log( LOG_ERR, "Can't change \"ServerName\" on runtime! Ignored new name." );
+ }
+
+ /* neue pre-defined Channel anlegen: */
+ Channel_InitPredefined( );
+
+ /* Listen-Sockets neu anlegen: */
+ Conn_InitListeners( );
+
+ /* Sync configuration with established connections */
+ Conn_SyncServerStruct( );
+
+ Log( LOG_NOTICE|LOG_snotice, "Re-reading of configuration done." );
+} /* NGIRCd_Rehash */
+
+
+LOCAL VOID
+Initialize_Signal_Handler( VOID )