]> jfr.im git - irc/quakenet/newserv.git/commitdiff
Added command to inspect authtracker contents.
authorsplidge <redacted>
Thu, 18 Feb 2010 23:42:42 +0000 (23:42 +0000)
committersplidge <redacted>
Thu, 18 Feb 2010 23:42:42 +0000 (23:42 +0000)
chanserv/authtracker/authtracker.c
chanserv/authtracker/authtracker.h
chanserv/authtracker/authtracker_db.c

index 4a5a5a2cfcbf9e4e5bd63c56ff50a56c41dc65cd..e79914a837dfc74276b3b6afcbf0c268ff28cd3b 100644 (file)
@@ -11,12 +11,15 @@ DBModuleIdentifier authtrackerdb;
 void _init() {
   authtrackerdb = dbgetid();
 
+  chanservaddcommand("dumpauthtracker",QCMD_DEV,1,at_dumpdb,"Shows servers with dangling authtracker entries.\n","");
   at_finddanglingsessions();
 }
 
 void _fini() {
   at_hookfini();
   nsfreeall(POOL_AUTHTRACKER);
+  
+  chanservremovecommand("dumpauthtracker",at_dumpdb);
 
   dbfreeid(authtrackerdb);
 }
index 1e26d69fa3536b53d334d0473f828a309f3c6a6d..0947dccd948947ff8e48efe33b7c83c74eb1c2f5 100644 (file)
@@ -21,6 +21,7 @@ void at_lostnick(unsigned int numeric, unsigned long userid, time_t accountts, t
 int at_foundnick(unsigned int numeric, unsigned long userid, time_t accountts);
 void at_serverback(unsigned int server);
 void at_flushghosts();
+int at_dumpdb(void *source, int argc, char **argv);
 
 /* authtracker_hooks.c */
 unsigned long at_getuserid(nick *np);
index 127417f557a8bb1a007ef8587e76ae1423c50763..c6c760dde311fe49ae5bacc0b309879ee17ed972 100644 (file)
@@ -11,6 +11,7 @@
  */ 
 
 #include "authtracker.h"
+#include "../chanserv.h"
 #include "../../core/nsmalloc.h"
 #include "../../server/server.h"
 #include "../../irc/irc_config.h"
@@ -138,3 +139,25 @@ void at_flushghosts() {
       at_serverback(i);
   }
 }
+
+int at_dumpdb(void *source, int argc, char **argv) {
+  nick *np=source;
+  struct dangling_entry *dep;
+  unsigned int i,j,k;
+  
+  for(i=0;i<MAXSERVERS;i++) {
+    if (ds[i]) {
+      k=0;
+      for(j=0;j<DANGLING_HASHSIZE;j++) {
+        for (dep=ds[i]->de[j];dep;dep=dep->next) {
+          k++;
+        }
+      }
+      chanservsendmessage(np, "Server %d (%s) has %d entries.",i,longtonumeric(i,2),k);
+    }
+  }
+
+  chanservstdmessage(np,QM_ENDOFLIST);
+  
+  return CMD_OK;
+}
\ No newline at end of file