From: funilrys Date: Sat, 5 Aug 2023 18:39:41 +0000 (+0200) Subject: 2nd Iter: Ensure that hostnames without dots are excluded. X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=1f3f3236ed3cfd6c294c3b8a3e5d3e5e8dff192f;p=stevenblack-hosts.git 2nd Iter: Ensure that hostnames without dots are excluded. This patch fixes #2347. Indeed, my previous patch was missing domains with dashes (-). --- diff --git a/testUpdateHostsFile.py b/testUpdateHostsFile.py index 7b3ff3a49..33b820fe1 100644 --- a/testUpdateHostsFile.py +++ b/testUpdateHostsFile.py @@ -842,7 +842,7 @@ class TestNormalizeRule(BaseStdout): "128.0.0.1", "0.0.0 google", "0.1.2.3.4 foo/bar", - "0.0.0.0 https" + "0.0.0.0 https", ]: self.assertEqual(normalize_rule(rule, **kwargs), (None, None)) @@ -905,7 +905,7 @@ class TestNormalizeRule(BaseStdout): sys.stdout = StringIO() def test_no_comment_raw(self): - for rule in ("twitter.com", "google.com", "foo.bar.edu"): + for rule in ("twitter.com", "google.com", "foo.bar.edu", "www.example-foo.bar.edu"): expected = (rule, "0.0.0.0 " + rule + "\n") actual = normalize_rule( diff --git a/updateHostsFile.py b/updateHostsFile.py index 5c8271492..6a96878e9 100755 --- a/updateHostsFile.py +++ b/updateHostsFile.py @@ -1061,7 +1061,7 @@ def normalize_rule(rule, target_ip, keep_domain_comments): """ first try: IP followed by domain """ - regex = r"^\s*(\d{1,3}\.){3}\d{1,3}\s+([\w\.-]+[a-zA-Z])(.*)" + regex = r"^\s*(\d{1,3}\.){3}\d{1,3}\s+((?:\w+\.)+[a-zA-Z\.-]+)(.*)" result = re.search(regex, rule) if result: @@ -1090,7 +1090,7 @@ def normalize_rule(rule, target_ip, keep_domain_comments): """ # deny any potential IPv6 address here. if ":" not in rule: - regex = r"^\s*([\w\.-]+[a-zA-Z])(.*)" + regex = r"^\s*((?:\w+\.)+[a-zA-Z\.-]+)(.*)" result = re.search(regex, rule) if result: