From 8f7c4bdf7f1e0d779d7b382440d62603df49582e Mon Sep 17 00:00:00 2001 From: Daniel Folkinshteyn Date: Mon, 24 Jan 2011 16:09:18 -0500 Subject: [PATCH] Fix banmask creation. Thanks Progval for the patch! fixes https://sourceforge.net/tracker/?func=detail&aid=3088559&group_id=58965&atid=489447 incorporating patch https://sourceforge.net/tracker/?func=detail&aid=3163843&group_id=58965&atid=489449 Signed-off-by: James McCoy --- src/ircutils.py | 2 +- test/test_ircutils.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ircutils.py b/src/ircutils.py index 7cfa70568..2b03797b9 100644 --- a/src/ircutils.py +++ b/src/ircutils.py @@ -200,7 +200,7 @@ def banmask(hostmask): L[-1] = '*' return '*!*@' + ':'.join(L) else: - if '.' in host: + if len(host.split('.')) > 2: # If it is a subdomain return '*!*@*%s' % host[host.find('.'):] else: return '*!*@' + host diff --git a/test/test_ircutils.py b/test/test_ircutils.py index a6b73b154..1df39660b 100644 --- a/test/test_ircutils.py +++ b/test/test_ircutils.py @@ -214,6 +214,10 @@ class FunctionsTestCase(SupyTestCase): msg.prefix), '%r didn\'t match %r' % (msg.prefix, banmask)) self.assertEqual(ircutils.banmask('foobar!user@host'), '*!*@host') + self.assertEqual(ircutils.banmask('foobar!user@host.tld'), + '*!*@host.tld') + self.assertEqual(ircutils.banmask('foobar!user@sub.host.tld'), + '*!*@*.host.tld') self.assertEqual(ircutils.banmask('foo!bar@2001::'), '*!*@2001::*') def testSeparateModes(self):