Revision: 1910
          
http://undernet-ircu.svn.sourceforge.net/undernet-ircu/?rev=1910&view=rev
Author:   entrope
Date:     2009-03-26 02:16:26 +0000 (Thu, 26 Mar 2009)

Log Message:
-----------
Fix SourceForge bug #1706672.

Modified Paths:
--------------
    ircu2/branches/u2_10_12_branch/ChangeLog
    ircu2/branches/u2_10_12_branch/ircd/channel.c

Modified: ircu2/branches/u2_10_12_branch/ChangeLog
===================================================================
--- ircu2/branches/u2_10_12_branch/ChangeLog    2009-03-18 03:31:58 UTC (rev 
1909)
+++ ircu2/branches/u2_10_12_branch/ChangeLog    2009-03-26 02:16:26 UTC (rev 
1910)
@@ -1,3 +1,9 @@
+2009-03-25  Michael Poole <[email protected]>
+
+       * ircd/channel.c (mode_parse): Add Doxygen comment.  When bouncing
+       a mode from a desynced U-lined server, do not set the modes or
+       send the change as a HACK(4) message.
+
 2009-03-17  Michael Poole <[email protected]>
 
        * ircd/send.c (sendcmdto_match_butone): Move match_it() to the end

Modified: ircu2/branches/u2_10_12_branch/ircd/channel.c
===================================================================
--- ircu2/branches/u2_10_12_branch/ircd/channel.c       2009-03-18 03:31:58 UTC 
(rev 1909)
+++ ircu2/branches/u2_10_12_branch/ircd/channel.c       2009-03-26 02:16:26 UTC 
(rev 1910)
@@ -3194,10 +3194,19 @@
         (state->add & (MODE_SECRET | MODE_PRIVATE)));
 }
 
-/*
+/**
  * This routine is intended to parse MODE or OPMODE commands and effect the
- * changes (or just build the bounce buffer).  We pass the starting offset
- * as a 
+ * changes (or just build the bounce buffer).
+ *
+ * \param[out] mbuf Receives parsed representation of mode change.
+ * \param[in] cptr Connection that sent the message to this server.
+ * \param[in] sptr Original source of the message.
+ * \param[in] chptr Channel whose modes are being changed.
+ * \param[in] parc Number of valid strings in \a parv.
+ * \param[in] parv Text arguments representing mode change, with the
+ *   zero'th element containing a string like "+m" or "-o".
+ * \param[in] flags Set of bitwise MODE_PARSE_* flags.
+ * \param[in] member If non-null, the channel member attempting to change the 
modes.
  */
 int
 mode_parse(struct ModeBuf *mbuf, struct Client *cptr, struct Client *sptr,
@@ -3357,7 +3366,9 @@
           } else {
             /* Server is desynced; bounce the mode and deop the source
              * to fix it. */
-            state.mbuf->mb_dest &= ~MODEBUF_DEST_CHANNEL;
+            state.flags &= ~MODE_PARSE_SET;
+            state.flags |= MODE_PARSE_BOUNCE;
+            state.mbuf->mb_dest &= ~(MODEBUF_DEST_CHANNEL | 
MODEBUF_DEST_HACK4);
             state.mbuf->mb_dest |= MODEBUF_DEST_BOUNCE | MODEBUF_DEST_HACK2;
             if (!IsServer(state.cptr))
               state.mbuf->mb_dest |= MODEBUF_DEST_DEOP;


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.
_______________________________________________
Patches mailing list
[email protected]
http://undernet.sbg.org/mailman/listinfo/patches

Reply via email to