Selaa lähdekoodia

* Fixed broken WHO updating

svn: 711
Bryan Drewery 22 vuotta sitten
vanhempi
commit
b291ed2daf
2 muutettua tiedostoa jossa 5 lisäystä ja 2 poistoa
  1. 1 0
      doc/UPDATES
  2. 4 2
      src/mod/irc.mod/irc.c

+ 1 - 0
doc/UPDATES

@@ -17,6 +17,7 @@ This is a summary of ChangeLog basically.
 14.binary -C now opens up a config editor, (crontab -e style).
 15.Invalid cmdline options are now silently ignored.
 16.Bad cmdline passwords now spoof an error.
+17.A long-standing bug with updating channel lists has been fixed, MAY cause "max sendq" quits.
 
 1.0.15 (Non-Release Version)
 1.cmd_randstring is now limited to 300.

+ 4 - 2
src/mod/irc.mod/irc.c

@@ -1072,6 +1072,7 @@ static void warn_pls_take()
 }
 
 
+/* FIXME: max sendq will occur. */
 void check_servers() {
   struct chanset_t *chan = NULL;
 
@@ -1079,9 +1080,10 @@ void check_servers() {
     memberlist *m = NULL;
 
     for (m = chan->channel.member; m && m->nick[0]; m = m->next) {
-      if (chan_hasop(m) && ((!m->server || !m->server[0]) || !m->hops)) {
+      if (!match_my_nick(m->nick) && chan_hasop(m) && (!m->server || (m->server && !m->server[0]) || (m->hops == -1))) {
+        putlog(LOG_DEBUG, "*", "Updating WHO for '%s' because '%s' is missing data.", chan->dname, m->nick);
         dprintf(DP_HELP, STR("WHO %s\n"), chan->name);
-        return;
+        break;
       }
     }
   }