]> jfr.im git - irc/quakenet/newserv.git/blobdiff - ticketauth/ticketauth.c
Merge pull request #2 from meeb/meeb
[irc/quakenet/newserv.git] / ticketauth / ticketauth.c
index e0a6418b91de9f0ca3d8c2435623205362ce48c4..40bd8b5d5f21ce5728d73f5f479592ef5d79ee9d 100644 (file)
@@ -36,8 +36,10 @@ int ta_ticketauth(void *source, int cargc, char **cargv) {
     return CMD_ERROR;
   }
 
-  if(cargc != 6)
+  if(cargc != 6) {
+    controlreply(np, "%d\n", cargc);
     return CMD_USAGE;
+  }
 
   acc = cargv[0];
   expiry = atoi(cargv[1]);
@@ -59,14 +61,14 @@ int ta_ticketauth(void *source, int cargc, char **cargv) {
   }
 
   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;
@@ -80,7 +82,7 @@ int ta_ticketauth(void *source, int cargc, char **cargv) {
 
   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;
@@ -98,7 +100,7 @@ void _init() {
     return;
   }
 
-  registercontrolhelpcmd("ticketauth", NO_OPERED, 5, ta_ticketauth, "Usage: ticketauth <ticket>");
+  registercontrolhelpcmd("ticketauth", NO_OPERED, 6, ta_ticketauth, "Usage: ticketauth <ticket>");
 }
 
 void _fini() {