Correct 2nd Iter: Hostnames to lowercase.

As mentioned by @StevenBlack in #2400, hostnames should be
converted to lowercase.
This commit is contained in:
funilrys
2023-09-07 18:46:54 +02:00
parent 422d6a5d98
commit 3b4709f25f
2 changed files with 23 additions and 0 deletions

View File

@@ -854,6 +854,25 @@ class TestNormalizeRule(BaseStdout):
expected = "==>" + rule + "<==" expected = "==>" + rule + "<=="
self.assertIn(expected, output) 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): def test_no_comments(self):
for target_ip in ("0.0.0.0", "127.0.0.1", "8.8.8.8"): 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" rule = "127.0.0.1 1.google.com foo"

View File

@@ -1123,6 +1123,8 @@ def normalize_rule(rule, target_ip, keep_domain_comments):
# Example: 0.0.0.0 example.org # Example: 0.0.0.0 example.org
hostname, suffix = split_rule[-1], None hostname, suffix = split_rule[-1], None
hostname = hostname.lower()
if ( if (
is_ip(hostname) is_ip(hostname)
or re.search(static_ip_regex, hostname) or re.search(static_ip_regex, hostname)
@@ -1154,6 +1156,8 @@ def normalize_rule(rule, target_ip, keep_domain_comments):
except ValueError: except ValueError:
hostname, suffix = split_rule[0], None hostname, suffix = split_rule[0], None
hostname = hostname.lower()
return normalize_response(hostname, suffix) return normalize_response(hostname, suffix)
return belch_unwanted(rule) return belch_unwanted(rule)