]> jfr.im git - irc/quakenet/newserv.git/commitdiff
Some more tidying of authtracker and related things.
authorsplidge <redacted>
Fri, 7 Mar 2008 10:13:09 +0000 (10:13 +0000)
committersplidge <redacted>
Fri, 7 Mar 2008 10:13:09 +0000 (10:13 +0000)
Authtracker used to have 2 ways of getting userID - either from np->auth or via the chanserv macro.  These now actually do the same thing so aren't both needed any more.
Also removed the HOOK_CHANSERV_SETUSERID hook as this is now redundant - the userid is always set at ACCOUNT time (for local or remote auths) - we ignore remote ACs without userID set now.
Also a slight tidy of the condition for autocreating auths - we just look for the chanserv extension attached to the user rather than looking up the account name.

chanserv/authtracker/authtracker_hooks.c
chanserv/chanservuser.c
core/hooks.h

index e85c351497373f9c88f0f914764b1e43290d99a7..331c33b363588e0e6253bcc42da04614814d40f0 100644 (file)
@@ -36,14 +36,10 @@ unsigned long at_getuserid(nick *np) {
     return 0;
 #endif
     
-  /* Try getting it from np->auth */
+  /* Use the userid from authext only. */
   if (np->auth)
     return np->auth->userid;
   
-  /* Else use the chanserv nickext */
-  if ((rup=getreguserfromnick(np)))
-    return rup->ID;
-  
   Error("authtracker",ERR_WARNING,"Unable to get userID from IsAccount() user %s",np->nick);
   return 0;
 }
@@ -108,7 +104,8 @@ void at_hookinit() {
   registerhook(HOOK_NICK_QUIT, at_handlequitorkill);
   registerhook(HOOK_NICK_KILL, at_handlequitorkill);
   registerhook(HOOK_NICK_LOSTNICK, at_handlelostnick);
-  registerhook(HOOK_CHANSERV_SETUSERID, at_newnick);
+  registerhook(HOOK_NICK_NEWNICK, at_newnick);
+  registerhook(HOOK_NICK_ACCOUNT, at_newnick);
   registerhook(HOOK_SERVER_LINKED, at_serverlinked);
 }
 
@@ -116,6 +113,7 @@ void at_hookfini() {
   deregisterhook(HOOK_NICK_QUIT, at_handlequitorkill);
   deregisterhook(HOOK_NICK_KILL, at_handlequitorkill);
   deregisterhook(HOOK_NICK_LOSTNICK, at_handlelostnick);
-  deregisterhook(HOOK_CHANSERV_SETUSERID, at_newnick);
+  deregisterhook(HOOK_NICK_NEWNICK, at_newnick);
+  deregisterhook(HOOK_NICK_ACCOUNT, at_newnick);
   deregisterhook(HOOK_SERVER_LINKED, at_serverlinked);
 }      
index 8d4ea420bfd8f494707bfd05c86e45a64a20c18a..23ec5fe0720b973a7f16a288e1fa08e5001e7882 100644 (file)
@@ -522,8 +522,7 @@ void cs_checknick(nick *np) {
   assert(getactiveuserfromnick(np));
 
   if (IsAccount(np) && np->auth) {
-    if ((rup=findreguserbynick(np->authname))!=NULL) {
-      triggerhook(HOOK_CHANSERV_SETUSERID, np);
+    if (np->auth->exts[chanservaext]) {
       cs_doallautomodes(np);
     } else {
       /* Auto create user.. */
index 35296d9323252c93969ce46675519b30c47d9302..3db12a85cb70bae272a2b2d2e92343bbf44c8606 100644 (file)
@@ -58,8 +58,9 @@
 #define HOOK_CHANNEL_LOSTNICK      416  /* Argument is void*[2] (channel, nick) */
 
 #define HOOK_CHANSERV_DBLOADED     500 /* No arg */
-#define HOOK_CHANSERV_SETUSERID    501 /* Argument is nick * */
+/* 501 spare for now */
 #define HOOK_CHANSERV_RUNNING      502 /* No arg */
+
 #define HOOK_CONTROL_REGISTERED    600 /* Argument is nick* */
 #define HOOK_CONTROL_WHOISREQUEST  601 /* Argument is nick* */
 #define HOOK_CONTROL_WHOISREPLY    602 /* Argument is char* */