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