Florian Westphal westphal@foo.fh-furtwangen.de wrote:
I looked at the code...
... but not careful enough...
NGIRCd_SignalRestart is set to FALSE just at the beginning of the main loop
... but this seems completely irrelevant ...
From what i could piece together: ngircd gets SIGHUP, sighandler sets NGIRCd_SignalRehash = TRUE.
Conn_Handler() (in conn.c) checks: if( NGIRCd_SignalRehash ) NGIRCd_Rehash( );
ngircd.c: NGIRCd_Rehash() calls Conn_{Exit,INIT}Listeners( )... and sets NGIRCd_SignalRehash back to FALSE.