From 3b4709f25f65cac5502a8c926a2daf9bcbaf847a Mon Sep 17 00:00:00 2001 From: funilrys Date: Thu, 7 Sep 2023 18:46:54 +0200 Subject: [PATCH] Correct 2nd Iter: Hostnames to lowercase. As mentioned by @StevenBlack in #2400, hostnames should be converted to lowercase. --- testUpdateHostsFile.py | 19 +++++++++++++++++++ updateHostsFile.py | 4 ++++ 2 files changed, 23 insertions(+) diff --git a/testUpdateHostsFile.py b/testUpdateHostsFile.py index b519dc69c55..69a90984c29 100644 --- a/testUpdateHostsFile.py +++ b/testUpdateHostsFile.py @@ -854,6 +854,25 @@ def test_no_match(self): expected = "==>" + rule + "<==" self.assertIn(expected, output) + def test_mixed_cases(self): + for rule, expected_target in ( + ("tWiTTer.cOM", "twitter.com"), + ("goOgLe.Com", "google.com"), + ("FoO.bAR.edu", "foo.bar.edu"), + ): + expected = (expected_target, "0.0.0.0 " + expected_target + "\n") + + actual = normalize_rule( + rule, target_ip="0.0.0.0", keep_domain_comments=False + ) + self.assertEqual(actual, expected) + + # Nothing gets printed if there's a match. + output = sys.stdout.getvalue() + self.assertEqual(output, "") + + sys.stdout = StringIO() + def test_no_comments(self): for target_ip in ("0.0.0.0", "127.0.0.1", "8.8.8.8"): rule = "127.0.0.1 1.google.com foo" diff --git a/updateHostsFile.py b/updateHostsFile.py index b925665bb7d..291faa0a41e 100755 --- a/updateHostsFile.py +++ b/updateHostsFile.py @@ -1123,6 +1123,8 @@ def belch_unwanted(unwanted: str) -> Tuple[None, None]: # Example: 0.0.0.0 example.org hostname, suffix = split_rule[-1], None + hostname = hostname.lower() + if ( is_ip(hostname) or re.search(static_ip_regex, hostname) @@ -1154,6 +1156,8 @@ def belch_unwanted(unwanted: str) -> Tuple[None, None]: except ValueError: hostname, suffix = split_rule[0], None + hostname = hostname.lower() + return normalize_response(hostname, suffix) return belch_unwanted(rule)