Răsfoiți Sursa

* Port [3514] to 1.2.14
* Speedup WHO parsing a bit
* Remove redundant recheck_channel() during WHO parsing (me + end)



svn: 3515

Bryan Drewery 19 ani în urmă
părinte
comite
40899af680
1 a modificat fișierele cu 10 adăugiri și 5 ștergeri
  1. 10 5
      src/mod/irc.mod/chan.c

+ 10 - 5
src/mod/irc.mod/chan.c

@@ -1342,7 +1342,7 @@ void recheck_channel(struct chanset_t *chan, int dobans)
       dprintf(DP_MODE, "MODE %s\n", chan->name);
     recheck_channel_modes(chan);
   }
-  stacking--;
+  --stacking;
 }
 
 /* got 302: userhost
@@ -1619,7 +1619,8 @@ static int got352or4(struct chanset_t *chan, char *user, char *host, char *nick,
   struct flag_record fr = { FR_GLOBAL | FR_CHAN, 0, 0, 0 };
   char userhost[UHOSTLEN] = "";
   memberlist *m = ismember(chan, nick);	/* in my channel list copy? */
-  bool waschanop = 0, me = 0;
+//  bool waschanop = 0;
+  bool me = 0;
 //  struct chanset_t *ch = NULL;
 //  memberlist *ml = NULL;
 
@@ -1649,7 +1650,8 @@ static int got352or4(struct chanset_t *chan, char *user, char *host, char *nick,
   }
 */
 
-  waschanop = me_op(chan);      /* Am I opped here? */
+//  waschanop = me_op(chan);      /* Am I opped here? */
+
   if (strchr(flags, '@') != NULL)	/* Flags say he's opped? */
     m->flags |= (CHANOP | WASOP);	/* Yes, so flag in my table */
   else
@@ -1676,15 +1678,18 @@ static int got352or4(struct chanset_t *chan, char *user, char *host, char *nick,
 
   me = match_my_nick(nick);
 
+
   if (me) {			/* Is it me? */
 //    strcpy(botuserhost, m->userhost);		/* Yes, save my own userhost */
     m->joined = now;				/* set this to keep the whining masses happy */
-
+  }
+#ifdef do_this_at_end_of_who
     if (!waschanop && me_op(chan))
       recheck_channel(chan, 2);
     if (!me_op(chan) && any_ops(chan))
       chan->channel.do_opreq = 1;
   }
+#endif
 
   if (!m->user && !m->tried_getuser) {
     m->user = get_user_by_host(userhost);
@@ -1822,7 +1827,7 @@ static int got315(char *from, char *msg)
       recheck_channel(chan, 2);
     else if (chan->channel.members == 1)
       chan->status |= CHAN_STOP_CYCLE;
-    else
+    else if (any_ops(chan))
       request_op(chan);
   }
   /* do not check for i-lines here. */