]> jfr.im git - irc/quakenet/newserv.git/commitdiff
CHANSERV: fix issue where chanserv_relay doesn't wait for db to be loaded before...
authorChris Porter <redacted>
Sun, 13 Jul 2014 14:47:03 +0000 (15:47 +0100)
committerChris Porter <redacted>
Sun, 13 Jul 2014 14:47:03 +0000 (15:47 +0100)
--HG--
branch : chanserv-live

chanserv/chanserv_relay.c

index e3c5bc792b3271d2c58b513f218b7a315b84924a..8500986cc258cee3a46ebfa0705f9b2dcdd45718 100644 (file)
@@ -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 <username> <digest> ?junk?");
   registercontrolhelpcmd("settempemail", NO_RELAY, 2, csa_dosettempemail, "Usage: settempemail <userid> <email address>");
   registercontrolhelpcmd("setemail", NO_RELAY, 3, csa_dosetemail, "Usage: setmail <userid> <timestamp> <email address>");
@@ -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) {