Merge pull request #9 from ilyaglow/fix/slow-search-2

Fix slow search for some cases
pull/10/head
Raphaël Vinot 2020-04-24 00:09:03 +02:00 committed by GitHub
commit 97eb2efd2a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 3 deletions

View File

@ -102,7 +102,7 @@ class WarningList():
parsed_url = urlparse(value)
if parsed_url.hostname:
value = parsed_url.hostname
return any(value.endswith(v) for v in self.list)
return any(value == v or value.endswith("."+v.lstrip(".")) for v in self.list)
elif self.type == 'cidr':
try:
value = ip_address(value)

View File

@ -43,6 +43,10 @@ class TestPyMISPWarningLists(unittest.TestCase):
results = self.warninglists.search('2001:DB8::34:1')
self.assertEqual(results[0].name, 'List of RFC 3849 CIDR blocks')
results = self.warninglists.search('1e100.net')
self.assertEqual(results[0].name, 'Top 1,000,000 most-used sites from Tranco')
self.assertTrue('List of known google domains' in [r.name for r in results])
results = self.warninglists.search('something.files.1drv.com')
self.assertEqual(results[0].name, 'Top 1,000,000 most-used sites from Tranco')
self.assertTrue('List of known microsoft domains' in [r.name for r in results])
results = self.warninglists.search('arbitrary-domain-1e100.net')
self.assertEqual(results, [])
results = self.warninglists.search('phishing.co.uk')
self.assertEqual(results, [])