From de337e945ddd760fd1e823cf4822f32e692ac433 Mon Sep 17 00:00:00 2001 From: Michael Poole Date: Wed, 17 Mar 2010 23:00:32 -0400 Subject: [PATCH] Silently ignore +z when users use it from ChanServ. Fixes SF#2970686. src/proto-p10.c (mod_chanmode_parse): Just ignore +z when MCP_REGISTERED is set (which only happens from ChanServ). src/opserv.c (cmd_clearmodes): Do not automatically clear +z. --- src/opserv.c | 2 +- src/proto-p10.c | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/opserv.c b/src/opserv.c index ec4b57f..abdbee9 100644 --- a/src/opserv.c +++ b/src/opserv.c @@ -579,7 +579,7 @@ static MODCMD_FUNC(cmd_clearmodes) return 0; } mod_chanmode_init(&change); - change.modes_clear = channel->modes; + change.modes_clear = channel->modes & ~MODE_REGISTERED; modcmd_chanmode_announce(&change); reply("OSMSG_CLEARMODES_DONE", channel->name); return 1; diff --git a/src/proto-p10.c b/src/proto-p10.c index b59635d..d2c5cda 100644 --- a/src/proto-p10.c +++ b/src/proto-p10.c @@ -2427,12 +2427,8 @@ mod_chanmode_parse(struct chanNode *channel, char **modes, unsigned int argc, un case 's': do_chan_mode(MODE_SECRET); break; case 't': do_chan_mode(MODE_TOPICLIMIT); break; case 'z': - if (!(flags & MCP_REGISTERED)) { + if (!(flags & MCP_REGISTERED)) do_chan_mode(MODE_REGISTERED); - } else { - mod_chanmode_free(change); - return NULL; - } break; #undef do_chan_mode case 'l': -- 2.20.1