Properly handle member modes like XXYYY:ov in bursts.
authorMichael Poole <mdpoole@troilus.org>
Sat, 13 Jan 2007 18:47:19 +0000 (18:47 +0000)
committerMichael Poole <mdpoole@troilus.org>
Sat, 13 Jan 2007 18:47:19 +0000 (18:47 +0000)
git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/branches/u2_10_12_branch@1745 c9e4aea6-c8fd-4c43-8297-357d70d61c8c

ChangeLog
ircd/m_burst.c

index 887ce4af8025d0d84bdfd5332c1f9adbf046397b..b70946a2ce2cf9a5e15ed4ee314f353f3ee34038 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2006-01-13  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/m_burst.c (ms_burst): Properly handle member mode :ov.
+
 2006-01-13  Michael Poole <mdpoole@troilus.org>
 
        * ircd/m_create.c (ms_create): Add channel name to the protocol
index 482ed658d8865f336c26fd2e90365073bf5b934a..e95a0696971eaf43f9f6c2984602073c7f974e40 100644 (file)
@@ -469,6 +469,14 @@ int ms_burst(struct Client *cptr, struct Client *sptr, int parc, char *parv[])
                    current_mode_needs_reset = 0;
                  }
                  current_mode = (current_mode & ~(CHFL_DEOPPED | CHFL_DELAYED)) | CHFL_CHANOP;
+                  /*
+                   * Older servers may send XXYYY:ov, in which case we
+                   * do not want to use the code for 'v' below.
+                   */
+                  if (ptr[1] == 'v') {
+                    current_mode |= CHFL_VOICE;
+                    ptr++;
+                  }
                }
                else if (*ptr == 'v') { /* has voice status */
                  if (current_mode_needs_reset) {