purposes).
--HG--
branch : achievements
int csa_completeauth(nick *sender, reguser *rup, char *authtype) {
int toomanyauths=0;
- time_t now;
+ time_t now, oldlastauth;
char userhost[USERLEN+HOSTLEN+2];
nick *onp;
+ void *args[2];
authname *anp;
/* This should never fail but do something other than crashing if it does. */
}
/* Guarantee a unique auth timestamp for each account */
+ oldlastauth=rup->lastauth;
+
if (rup->lastauth < now)
rup->lastauth=now;
else
chanservstdmessage(sender, QM_AUTHOK, rup->username);
+ args[0]=sender;
+ args[1]=(void *)oldlastauth;
+ triggerhook(HOOK_CHANSERV_AUTH, args);
+
return CMD_OK;
}
#include "../chanserv.h"
#include "../authlib.h"
#include "../../lib/irc_string.h"
+#include "../../core/hooks.h"
#include <stdio.h>
#include <string.h>
#include <ctype.h>
reguser *rup;
nick *sender=source;
int i, cntweak = 0, cntdigits = 0, cntletters = 0;
+ unsigned int same=0;
time_t t;
if (cargc<3) {
return CMD_ERROR;
}
+ if (!strcmp(cargv[0],cargv[1])) {
+ /* If they are the same then continue anyway but don't send the hook later. */
+ same=1;
+ }
+
for ( i = 0; cargv[1][i] && i < PASSLEN; i++ ) {
if ( cargv[1][i] == cargv[1][i+1] || cargv[1][i] + 1 == cargv[1][i+1] || cargv[1][i] - 1 == cargv[1][i+1] )
cntweak++;
csdb_updateuser(rup);
csdb_createmail(rup, QMAIL_NEWPW);
+
+ if (!same)
+ triggerhook(HOOK_CHANSERV_PWCHANGE, sender);
return CMD_OK;
}
int i,j;
int newuser=0;
int usercount;
+ void *args[2];
if (cargc<1) {
chanservstdmessage(sender, QM_NOTENOUGHPARAMS, "chanlev");
} else {
chanservstdmessage(sender, QM_NOUSERSONCHANLEV, cip->name->content);
}
+
+ triggerhook(HOOK_CHANSERV_CHANLEVDUMP, sender);
free(rusers);
} else {
flagbuf,printflags(rcuplist->flags,rcuflags));
csdb_chanlevhistory_insert(rcp, sender, rcuplist->user, oldflags, rcuplist->flags);
+ args[0]=sender;
+ args[1]=rcuplist;
+ args[2]=(void *)oldflags;
+
+ triggerhook(HOOK_CHANSERV_CHANLEVMOD, args);
+
/* Now see what we do next */
if (rcuplist->flags) {
/* User still valid: update or create */
}
cmd->handler((void *)sender, cargc-1, &(cargv[1]));
+
+ triggerhook(HOOK_CHANSERV_CMD, sender);
}
break;
chanservstdmessage(sender, QM_ENDOFLIST);
+ if (rup==target) {
+ triggerhook(HOOK_CHANSERV_WHOAMI, sender);
+ } else {
+ triggerhook(HOOK_CHANSERV_WHOIS, sender);
+ }
+
return CMD_OK;
}
/* 501 spare for now */
#define HOOK_CHANSERV_RUNNING 502 /* No arg */
+#define HOOK_CHANSERV_AUTH 503 /* Argument is void*[2] (nick *, lastauth) */
+#define HOOK_CHANSERV_PWCHANGE 504 /* Argument is nick * */
+#define HOOK_CHANSERV_CHANLEVMOD 505 /* Argument is void*[3] (nick *, regchanuser *, oldflags) */
+#define HOOK_CHANSERV_CHANLEVDUMP 506 /* Argument is nick * */
+#define HOOK_CHANSERV_WHOIS 507 /* Argument is nick * */
+#define HOOK_CHANSERV_WHOAMI 508 /* Argument is nick * */
+#define HOOK_CHANSERV_CMD 509 /* Argument is nick * */
+
#define HOOK_CONTROL_REGISTERED 600 /* Argument is nick* */
#define HOOK_CONTROL_WHOISREQUEST 601 /* Argument is nick* */
#define HOOK_CONTROL_WHOISREPLY 602 /* Argument is char* */