mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-11-14 14:49:21 +01:00
Prevent the 'hostmask' converter from returning '*!*@*' while 'foo!*@*' was given.
This commit is contained in:
parent
95a9ffac17
commit
fc3d3e6c01
@ -205,11 +205,19 @@ class ChannelTestCase(ChannelPluginTestCase):
|
||||
|
||||
def testIgnore(self):
|
||||
orig = conf.supybot.protocols.irc.banmask()
|
||||
def ignore(given, expect=None):
|
||||
if expect is None:
|
||||
expect = given
|
||||
self.assertNotError('channel ignore add %s' % given)
|
||||
self.assertResponse('channel ignore list', "'%s'" % expect)
|
||||
self.assertNotError('channel ignore remove %s' % expect)
|
||||
self.assertRegexp('channel ignore list', 'not currently')
|
||||
try:
|
||||
ignore('foo!bar@baz', '*!bar@baz')
|
||||
ignore('foo!*@*')
|
||||
conf.supybot.protocols.irc.banmask.setValue(['exact'])
|
||||
self.assertNotError('channel ignore add foo!bar@baz')
|
||||
self.assertResponse('channel ignore list', "'foo!bar@baz'")
|
||||
self.assertNotError('channel ignore remove foo!bar@baz')
|
||||
ignore('foo!bar@baz')
|
||||
ignore('foo!*@*')
|
||||
self.assertError('ban add not!a.hostmask')
|
||||
finally:
|
||||
conf.supybot.protocols.irc.banmask.setValue(orig)
|
||||
|
@ -988,6 +988,9 @@ class Banmask(registry.SpaceSeparatedSetOfStrings):
|
||||
bhost = host
|
||||
elif option == 'exact':
|
||||
return hostmask
|
||||
if (bnick, buser, bhost) == ('*', '*', '*') and \
|
||||
ircutils.isUserHostmask(hostmask):
|
||||
return hostmask
|
||||
return ircutils.joinHostmask(bnick, buser, bhost)
|
||||
|
||||
registerChannelValue(supybot.protocols.irc, 'banmask',
|
||||
|
Loading…
Reference in New Issue
Block a user