X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/blobdiff_plain/88fa032900f803a276204135f8fd75f14160448b..84f32842287f0ba338a29dcab3aa406aa6ffc744:/chanserv/chanserv_relay.c diff --git a/chanserv/chanserv_relay.c b/chanserv/chanserv_relay.c index ccf43c86..6180612e 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) { @@ -244,6 +257,8 @@ int csa_docreateaccount(void *source, int cargc, char **cargv) { error_password = "passwordlong"; } else if(r == QM_PWTOWEAK) { error_password = "passwordweak"; + } else if(r == QM_PWINVALID) { + error_password = "passwordinvalid"; } else if(r != -1) { error_password = "passwordunknown"; } @@ -372,7 +387,6 @@ int csa_dosetemail(void *source, int cargc, char **cargv) { cs_log(sender,"SETEMAIL OK username %s email %s",rup->username, rup->email->content); csdb_updateuser(rup); - sendemail(rup); controlreply(sender, "SETEMAIL TRUE"); @@ -477,7 +491,7 @@ int csa_doaddchan(void *source, int cargc, char **cargv) { return CMD_ERROR; } - rcp = cs_addchan(cip, sender, rup, founder, QCFLAG_JOINED, type); + rcp = cs_addchan(cip, sender, rup, founder, QCFLAG_JOINED | QCFLAG_AUTOOP | QCFLAG_BITCH | QCFLAG_FORCETOPIC | QCFLAG_PROTECT | QCFLAG_TOPICSAVE, CHANMODE_NOCTCP | CHANMODE_DELJOINS | CHANMODE_MODNOAUTH | CHANMODE_NONOTICE | CHANMODE_NOEXTMSG | CHANMODE_SINGLETARG | CHANMODE_TOPICLIMIT | CHANMODE_NOQUITMSG, 0, type); if(!rcp) { controlreply(sender, "ADDCHAN FALSE alreadyregistered"); return CMD_ERROR;