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: