irclib: Filter out unsupported umodes before sending them to the server

Closes: Sf#3075891
Signed-off-by: James McCoy <vega.james@gmail.com>
This commit is contained in:
James McCoy 2011-10-29 17:22:42 -04:00
parent c9e548bdd9
commit b23480b915

View File

@ -928,9 +928,14 @@ class Irc(IrcCommandDispatcher):
# Let's reset nicks in case we had to use a weird one. # Let's reset nicks in case we had to use a weird one.
self.alternateNicks = conf.supybot.nick.alternates()[:] self.alternateNicks = conf.supybot.nick.alternates()[:]
umodes = conf.supybot.protocols.irc.umodes() umodes = conf.supybot.protocols.irc.umodes()
supported = self.supported.get('umodes')
if umodes: if umodes:
if umodes[0] not in '+-': addSub = '+'
umodes = '+' + umodes if umodes[0] in '+-':
(addSub, umodes) = (umodes[0], umodes[1:])
if supported:
umodes = filter(lamda m: m in supported, umodes)
umodes = ''.join(addSub, umodes)
log.info('Sending user modes to %s: %s', self.network, umodes) log.info('Sending user modes to %s: %s', self.network, umodes)
self.sendMsg(ircmsgs.mode(self.nick, umodes)) self.sendMsg(ircmsgs.mode(self.nick, umodes))
do377 = do422 = do376 do377 = do422 = do376