From: Chris Porter Date: Sun, 13 Jul 2014 14:47:03 +0000 (+0100) Subject: CHANSERV: fix issue where chanserv_relay doesn't wait for db to be loaded before... X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/commitdiff_plain/7e032dc63479ed3d0b76fe71c05303fbe7dbc53a CHANSERV: fix issue where chanserv_relay doesn't wait for db to be loaded before installing control commands. --HG-- branch : chanserv-live --- diff --git a/chanserv/chanserv_relay.c b/chanserv/chanserv_relay.c index e3c5bc79..8500986c 100644 --- a/chanserv/chanserv_relay.c +++ b/chanserv/chanserv_relay.c @@ -58,9 +58,13 @@ static unsigned char hexlookup[256] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; -void _init(void) { +static void relayfinishinit(int, void *); + +void relayfinishinit(int hooknum, void *arg) { sstring *s; + deregisterhook(HOOK_CHANSERV_DBLOADED, relayfinishinit); + registercontrolhelpcmd("checkhashpass", NO_RELAY, 3, csa_docheckhashpass, "Usage: checkhashpass ?junk?"); registercontrolhelpcmd("settempemail", NO_RELAY, 2, csa_dosettempemail, "Usage: settempemail "); registercontrolhelpcmd("setemail", NO_RELAY, 3, csa_dosetemail, "Usage: setmail "); @@ -81,6 +85,13 @@ void _init(void) { freesstring(s); } +void _init(void) { + registerhook(HOOK_CHANSERV_DBLOADED, relayfinishinit); + + if(chanservdb_ready) + relayfinishinit(HOOK_CHANSERV_DBLOADED, NULL); +} + void _fini(void) { deregistercontrolcmd("checkhashpass", csa_docheckhashpass); deregistercontrolcmd("settempemail", csa_dosettempemail); @@ -91,6 +102,8 @@ void _fini(void) { if(createaccountsecret_ok) deregistercontrolcmd("createaccount", csa_docreateaccount); + + deregisterhook(HOOK_CHANSERV_DBLOADED, relayfinishinit); } int csa_docheckhashpass(void *source, int cargc, char **cargv) {