From: Michael Poole Date: Thu, 24 Mar 2005 01:37:39 +0000 (+0000) Subject: Remove limit and keys when a channel is wiped out during burst. X-Git-Url: http://git.pk910.de/?a=commitdiff_plain;h=01d8f0405cfc06c8a81dfaf801c1d2ef7f3c7ed6;p=ircu2.10.12-pk.git Remove limit and keys when a channel is wiped out during burst. git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/trunk@1340 c9e4aea6-c8fd-4c43-8297-357d70d61c8c --- diff --git a/ChangeLog b/ChangeLog index 60bdf8f..359006c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-03-23 Michael Poole + + * ircd/m_burst.c (ms_burst): Remove limit and keys when a channel + is wiped out during burst. + 2005-03-22 Michael Poole * ircd/ircd_res.c (check_resolver_timeout): I give up. Use the diff --git a/ircd/m_burst.c b/ircd/m_burst.c index 42b39cd..0e2d613 100644 --- a/ircd/m_burst.c +++ b/ircd/m_burst.c @@ -277,6 +277,24 @@ int ms_burst(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) modebuf_mode(mbuf, MODE_DEL | chptr->mode.mode); /* wipeout modes */ chptr->mode.mode &= MODE_BURSTADDED | MODE_WASDELJOINS; + /* wipe out modes not represented in chptr->mode.mode */ + if (chptr->mode.limit) { + modebuf_mode_uint(mbuf, MODE_DEL | MODE_LIMIT, chptr->mode.limit); + chptr->mode.limit = 0; + } + if (chptr->mode.key[0]) { + modebuf_mode_string(mbuf, MODE_DEL | MODE_KEY, chptr->mode.key, 0); + chptr->mode.key[0] = '\0'; + } + if (chptr->mode.upass[0]) { + modebuf_mode_string(mbuf, MODE_DEL | MODE_UPASS, chptr->mode.upass, 0); + chptr->mode.upass[0] = '\0'; + } + if (chptr->mode.apass[0]) { + modebuf_mode_string(mbuf, MODE_DEL | MODE_APASS, chptr->mode.apass, 0); + chptr->mode.apass[0] = '\0'; + } + parse_flags |= (MODE_PARSE_SET | MODE_PARSE_WIPEOUT); /* wipeout keys */ /* mark bans for wipeout */