Skip to content

Bracket IPv6 literals in the checker's CONNECT line, targets and judges - #305

Merged
maximilianfeix merged 1 commit into
mainfrom
fix/ipv6-authority
Oct 10, 2026
Merged

maximilianfeix merged 1 commit into
mainfrom
fix/ipv6-authority

Conversation

@maximilianfeix

@maximilianfeix maximilianfeix commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

What does this change?

Closes #302

  • New netio.authority(host, port) for CONNECT lines (always with the port, IPv6 literals in brackets); the checker's _open_tunnel uses it.
  • Target.host_header, Target.label, the URL parse_target builds, Judge.authority and runsteps.browser_get go through netio.host_header instead of formatting host:port themselves.
  • CHANGELOG entry.

Note: target sites and judges are still resolved with AF_INET, so an IPv6-only target is turned away before any check (IPv6 was measured and dropped in #1). This only makes the request lines correct wherever a literal does get that far.

How was it tested?

  • python3 -m pytest passes (1022 passed, 20 skipped on Windows)
  • ruff check . is clean
  • tried it for real: the new test starts a local HTTP proxy and reads what the checker sends – CONNECT [2606:4700::1]:443 with the matching Host line. Both new tests fail on main.

Screenshots

n/a

@maximilianfeix
maximilianfeix merged commit b82a0d0 into main Oct 10, 2026
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

IPv6 literals unbracketed in checker CONNECT line, targets.py and judges.py

1 participant