Pārlūkot izejas kodu

* Possibly fixed slowjoin/slowpart bugs...

svn: 227
Bryan Drewery 22 gadi atpakaļ
vecāks
revīzija
1003d07ffe

+ 7 - 4
src/mod/channels.mod/channels.c

@@ -254,16 +254,19 @@ static void channels_checkslowjoin() {
 Context;
 Context;
   for (chan=chanset;chan;chan=chan->next) {
   for (chan=chanset;chan;chan=chan->next) {
 Context;
 Context;
+    /* slowpart */
     if ((chan->parttime) && (chan->parttime < now)) {
     if ((chan->parttime) && (chan->parttime < now)) {
       chan->parttime = 0;
       chan->parttime = 0;
 Context;
 Context;
 #ifdef LEAF
 #ifdef LEAF
       if (channel_active(chan) && !channel_inactive(chan))
       if (channel_active(chan) && !channel_inactive(chan))
-        dprintf(DP_MODE, "PART %s\n", chan->dname);
+        dprintf(DP_MODE, "PART %s\n", chan->name);
 #endif /* LEAF */
 #endif /* LEAF */
 Context;
 Context;
-      remove_channel(chan);
+      if (chan) /* this should NOT be necesary, but some unforseen bug requires it.. */
+        remove_channel(chan);
 Context;
 Context;
+    /* slowjoin */
     } else if ((chan->jointime) && (chan->jointime < now)) {
     } else if ((chan->jointime) && (chan->jointime < now)) {
 Context;
 Context;
         chan->status &= ~CHAN_INACTIVE;
         chan->status &= ~CHAN_INACTIVE;
@@ -271,8 +274,8 @@ Context;
         chan->jointime=0;
         chan->jointime=0;
 Context;
 Context;
 #ifdef LEAF
 #ifdef LEAF
-      if (!channel_inactive(chan))
-        dprintf(DP_MODE, "JOIN %s %s\n", chan->dname, chan->key_prot);
+      if (!channel_inactive(chan) && !channel_active(chan))
+        dprintf(DP_MODE, "JOIN %s %s\n", chan->name, chan->key_prot);
 #endif /* LEAF */
 #endif /* LEAF */
     }
     }
   }
   }

+ 1 - 2
src/mod/channels.mod/cmdschan.c

@@ -1043,8 +1043,7 @@ static void cmd_slowpart(struct userrec *u, int idx, char *par)
   dprintf(idx, "Channel %s removed from the bot.\n", chname);
   dprintf(idx, "Channel %s removed from the bot.\n", chname);
   dprintf(idx, "This includes any channel specific bans, invites, exemptions and user records that you set.\n");
   dprintf(idx, "This includes any channel specific bans, invites, exemptions and user records that you set.\n");
 
 
-  chan = findchan_by_dname(chname);
-  if (chan) {
+  if (findchan_by_dname(chname)) {
     dprintf(idx, "Hmmm... Channel didn't get removed. Weird *shrug*\n");
     dprintf(idx, "Hmmm... Channel didn't get removed. Weird *shrug*\n");
     return;
     return;
   }
   }