#include "../localuser/localuser.h"
#include "../core/hooks.h"
#include "../irc/irc.h"
+
+#define CS_NODB
#include "../chanserv/chanserv.h"
#define WARN_CHANNEL "#twilightzone"
return CMD_ERROR;
}
- if(cargc != 6)
+ if(cargc != 6) {
+ controlreply(np, "%d\n", cargc);
return CMD_USAGE;
+ }
acc = cargv[0];
expiry = atoi(cargv[1]);
}
hmacsha256_init(&hmac, (unsigned char *)sharedsecret->content, sharedsecret->length);
- snprintf(buffer, sizeof(buffer), "%s %d %d %s", acc, expiry, id, junk);
+ snprintf(buffer, sizeof(buffer), "%s %d %d %s %s", acc, expiry, id, flags, junk);
hmacsha256_update(&hmac, (unsigned char *)buffer, strlen(buffer));
hmacsha256_final(&hmac, digest);
/* hahahaha */
snprintf(buffer, sizeof(buffer), "%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x", digest[0], digest[1], digest[2], digest[3], digest[4], digest[5], digest[6], digest[7], digest[8], digest[9], digest[10], digest[11], digest[12], digest[13], digest[14], digest[15], digest[16], digest[17], digest[18], digest[19], digest[20], digest[21], digest[22], digest[23], digest[24], digest[25], digest[26], digest[27], digest[28], digest[29], digest[30], digest[31]);
- if(strcasecmp(buffer, uhmac)) {
+ if(hmac_strcmp(buffer, uhmac)) {
controlwall(NO_OPER, NL_MISC, "%s!%s@%s attempted to TICKETAUTH as %s (bad HMAC)", np->nick, np->ident, np->host->name->content, acc);
controlreply(np, "Bad HMAC.");
return CMD_ERROR;
controlreply(np, "Ticket valid, authing. . .");
- localusersetaccount(np, acc, id, 0, cs_accountflagmap_str(flags));
+ localusersetaccount(np, acc, id, cs_accountflagmap_str(flags), 0);
controlreply(np, "Done.");
return CMD_OK;
return;
}
- registercontrolhelpcmd("ticketauth", NO_OPERED, 5, ta_ticketauth, "Usage: ticketauth <ticket>");
+ registercontrolhelpcmd("ticketauth", NO_OPERED, 6, ta_ticketauth, "Usage: ticketauth <ticket>");
}
void _fini() {