Kaynağa Gözat

* Disable dual-queue for cookies

All cookies are now forced into the DP_SERVER queue. Enabling the dual queue
creates out-of-order counters as counter N may be queued in DP_SERVER
while counter N+1 is dumped out before counter N is sent out
via the queue. This results in a bad cookie.
Bryan Drewery 17 yıl önce
ebeveyn
işleme
810dbcbdc0
1 değiştirilmiş dosya ile 2 ekleme ve 1 silme
  1. 2 1
      src/mod/irc.mod/mode.c

+ 2 - 1
src/mod/irc.mod/mode.c

@@ -178,7 +178,8 @@ flush_cookies(struct chanset_t *chan, int pri)
     makecookie(&out[myindex], sizeof(out) - myindex, chan->dname, me, nicks[0], nicks[1], nicks[2]);
   }
   if (out[0]) {
-    if (pri == QUICK) {
+    // Enabling this creates a queued cookie and a dumped cookie, resulting in out-of-order counters.
+    if (pri == QUICK && 0) {
       char outbuf[201] = "";
 
       const size_t len = simple_snprintf(outbuf, sizeof(outbuf), "MODE %s %s\r\n", chan->name, out);