Fix slow search #6

pull/9/head
Ilya Glotov 2020-04-23 16:16:54 +03:00
parent 6c2ec6a58c
commit 5fe0d7fd6b
No known key found for this signature in database
GPG Key ID: 5862B629BFB84D34
2 changed files with 6 additions and 2 deletions

View File

@ -102,7 +102,7 @@ class WarningList():
parsed_url = urlparse(value) parsed_url = urlparse(value)
if parsed_url.hostname: if parsed_url.hostname:
value = 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': elif self.type == 'cidr':
try: try:
value = ip_address(value) value = ip_address(value)

View File

@ -45,4 +45,8 @@ class TestPyMISPWarningLists(unittest.TestCase):
results = self.warninglists.search('1e100.net') results = self.warninglists.search('1e100.net')
self.assertEqual(results[0].name, 'List of known google domains') self.assertEqual(results[0].name, 'List of known google domains')
results = self.warninglists.search('something.files.1drv.com') 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, [])