]> jfr.im git - irc/quakenet/newserv.git/commitdiff
merge
authorPaul <redacted>
Sat, 26 Jan 2008 18:27:14 +0000 (18:27 +0000)
committerPaul <redacted>
Sat, 26 Jan 2008 18:27:14 +0000 (18:27 +0000)
chanserv/chancmds/chanlevhistory.c
chanserv/chancmds/rollbackchan.c
chanserv/chanserv.h
chanserv/chanservuser.c
chanserv/database/chanservdb_messages.c
control/control.c
lib/patricia.c

index 88d1e847a26439eb51662d4e37aa89361e388ca5..7246077cebb6d87fa7553b59d61c2d3efb1c12ca 100644 (file)
@@ -89,8 +89,8 @@ int csc_dochanlevhistory(void *source, int cargc, char **cargv) {
   nick *sender=source;
   chanindex *cip;
   regchan *rcp;
-  time_t starttime=getnettime();
-  
+  unsigned long interval;
+
   if (cargc < 1) {
     chanservstdmessage(sender, QM_NOTENOUGHPARAMS, "chanlevhistory");
     return CMD_ERROR;
@@ -102,11 +102,12 @@ int csc_dochanlevhistory(void *source, int cargc, char **cargv) {
   rcp=(regchan*)cip->exts[chanservext];
   
   if (cargc > 1)
-    starttime-=durationtolong(cargv[1]);
+    interval=durationtolong(cargv[1]);
   else
-    starttime-=3600;
-  
-  csdb_retreivechanlevhistory(sender, rcp, starttime);
+    interval=3600;
+  chanservstdmessage(sender, QM_SHOWINGDURATION, "chanlevhistory", longtoduration(interval,1));
+  csdb_retreivechanlevhistory(sender, rcp, getnettime()-interval);
   
   return CMD_OK;
 }
index 6b3bbc6a41e48b59c24514a125b2efcaadce1f31..41df7e0d4a7548f264079026e35d8ed8fd0f8af6 100644 (file)
@@ -140,7 +140,7 @@ void csc_dorollbackchan_real(PGconn *dbconn, void *arg) {
         if (rcp->regusers[j])
           break;
 
-      if (i==REGCHANUSERHASHSIZE) {
+      if (j==REGCHANUSERHASHSIZE) {
         cs_log(np, "DELCHAN %s (Cleared chanlev from rollback)", cip->name->content);
         chanservsendmessage(np, "Rollback cleared chanlev list, channel deleted.");
         rcp=NULL;
index 1b72d1af3b1494bc8165c9fe8686235b8bc27922..c242fb5b4a506c870fe4c9408e7302e1840ce2bb 100644 (file)
 #define QM_GIVEOWNERALREADYOWNER   139
 #define QM_GIVEOWNERNEEDHASH       140
 #define QM_GIVEOWNERWRONGHASH      141
+#define QM_SHOWINGDURATION         142
 
 /* List of privileged operations */
 
index 7c5dc9dc60aac0d9e24c262ff9e890c757e62ef1..9c06c161e6fcc7b8f0a612460c08349ae0b66a58 100644 (file)
@@ -677,8 +677,11 @@ void cs_doallautomodes(nick *np) {
     if (rcup->chan->index->channel) {
       /* Channel exists */
       if ((lp=getnumerichandlefromchanhash(rcup->chan->index->channel->users, np->numeric))) {
-       
-       /* User is on channel.. */
+        /* User is on channel.. */
+
+        /* Update last use time */
+        rcup->usetime=getnettime();
+
        localsetmodeinit(&changes, rcup->chan->index->channel, chanservnick);
        if (*lp & CUMODE_OP) {
          if (!IsService(np) && (CUIsDeny(rcup) || (CIsBitch(rcup->chan) && !CUHasOpPriv(rcup))))
index 6e3c53a33ae809abce3d95da5a934f32c1be5ab5..fed2d57847fcbfe3e7d642f4fc4f222a4b5a05b5 100644 (file)
@@ -149,7 +149,8 @@ char *defaultmessages[MAXMESSAGES] = {
   /* 138*/ "User %s is not a master on %s - you must promote user to master status first.",
   /* 139*/ "User %s is already an owner on %s.",
   /* 140*/ "WARNING: This command will give COMPLETE control over %s to %s, including the ability to remove you as owner.\nIf you are sure you want to do this, type /msg Q GIVEOWNER %s #%s %s",
-  /* 141*/ "Hash value incorrect."
+  /* 141*/ "Hash value incorrect.",
+  /* 142*/ "Showing %s for last %s."
 };
 
 void initmessages() {
index 0f449a6fab53c542f8e98e3df0feb5a0d2db5822..741fa079b1ed4e2474da3ceed675cc67d23b62ff 100644 (file)
@@ -388,7 +388,6 @@ int controlchannel(void *sender, int cargc, char **cargv) {
         buf[i*18]=' ';
     }
   }
-  
 
   for (cbp=cp->bans;cbp;cbp=cbp->next) {
     controlreply((nick *)sender,"Ban     : %s",bantostringdebug(cbp));
index 972b45f623780934af5cd8d347e3ca674bafa849..441b09e6803b2af4097865bce530430cd6e7196f 100644 (file)
@@ -561,7 +561,7 @@ refnode(patricia_tree_t *tree, struct irc_in_addr *sin, int bitlen) {
   patricia_node_t *node;
   prefix_t *prefix;
 
-  node = patricia_search_exact(tree, sin, PATRICIA_MAXBITS);
+  node = patricia_search_exact(tree, sin, bitlen);
 
   if (node == NULL) {
     prefix = patricia_new_prefix(sin, bitlen);