FA-7331 / DNS resolution / Open access
Dns name equality ignores case and final root dot · case 01
Dns name equality ignores case and final root dot.
ROOT CAUSE
The faulty implementation uses `question == answer` for the dns-name-equality-ignores-case-and-final-root-dot decision.
VERIFIED REPAIR
Apply the explicit dns-name-equality-ignores-case-and-final-root-dot contract, including the tested boundary and negative cases.
Unsuccessful approach: The attempted repair uses `question[0].rstrip(".").lower() == answer[0].rstrip(".").lower()` and still violates a separate fixture.
Case contract
Given question, answer, dns name equality ignores case and final root dot. Return the protocol decision or transformed value; fields are validated and fixtures state boundary outcomes.
Why this case matters
This deterministic dns resolution model isolates the dns-name-equality-ignores-case-and-final-root-dot policy at a network component boundary.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
import ipaddress
import re
from urllib.parse import urlsplit, urljoin
N = 1
observations = []
def solve(question, answer):
return question == answer
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
_fixtures = ["check('fixture 1', solve(('A.', 1, 1), ('a', 1, 1)), True)", "check('fixture 2', solve(('a', 1, 1), ('a', 28, 1)), False)", "check('fixture 3', solve(('a', 1, 1), ('a', 1, 3)), False)", "check('fixture 4', solve(('a', 1, 1), ('b', 1, 1)), False)"]
for _line in _fixtures[N % len(_fixtures):] + _fixtures[:N % len(_fixtures)]:
exec(_line)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| fixture 2 | False | False | Passed |
| fixture 3 | False | False | Passed |
| fixture 4 | False | False | Passed |
| fixture 1 | False | True | Failed |
SHA-256 / 5bfff1587c4a05967e5586da848351b5452c37e1afa36ee78605fcc89724079b
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
import ipaddress
import re
from urllib.parse import urlsplit, urljoin
N = 1
observations = []
def solve(question, answer):
return question[0].rstrip(".").lower() == answer[0].rstrip(".").lower()
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
_fixtures = ["check('fixture 1', solve(('A.', 1, 1), ('a', 1, 1)), True)", "check('fixture 2', solve(('a', 1, 1), ('a', 28, 1)), False)", "check('fixture 3', solve(('a', 1, 1), ('a', 1, 3)), False)", "check('fixture 4', solve(('a', 1, 1), ('b', 1, 1)), False)"]
for _line in _fixtures[N % len(_fixtures):] + _fixtures[:N % len(_fixtures)]:
exec(_line)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| fixture 2 | True | False | Failed |
| fixture 3 | True | False | Failed |
| fixture 4 | False | False | Passed |
| fixture 1 | True | True | Passed |
SHA-256 / e4cb23cddd33bb761ac401641ee7f327afafeeca309df1c14fdd4518e10b6689
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
import ipaddress
import re
from urllib.parse import urlsplit, urljoin
N = 1
observations = []
def solve(question, answer):
return (question[0].rstrip(".").lower(),question[1],question[2]) == (answer[0].rstrip(".").lower(),answer[1],answer[2])
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
_fixtures = ["check('fixture 1', solve(('A.', 1, 1), ('a', 1, 1)), True)", "check('fixture 2', solve(('a', 1, 1), ('a', 28, 1)), False)", "check('fixture 3', solve(('a', 1, 1), ('a', 1, 3)), False)", "check('fixture 4', solve(('a', 1, 1), ('b', 1, 1)), False)"]
for _line in _fixtures[N % len(_fixtures):] + _fixtures[:N % len(_fixtures)]:
exec(_line)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| fixture 2 | False | False | Passed |
| fixture 3 | False | False | Passed |
| fixture 4 | False | False | Passed |
| fixture 1 | True | True | Passed |
SHA-256 / f26ec8fbf8240a8acabe6014297509ecfef10d2ae20be476f105da486071d625
Verification & scope
Bounded deterministic policy model over validated inputs; not a complete protocol stack or an interoperability claim. The five variants rotate the same explicit fixture set. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.
Observations recorded using Python 3.12.14 at 2026-09-29T14:38:10.690750+00:00.
Case digest / 5690692a2c9e057fc791f00905bd7928e577cc0bb5e87a9d754b6e8c23e9ac15