Skip to content

Fix IPv6 proxy addresses, add AAAA bootstrap fallback and verify IPv6 traffic - #147

Merged
andre487 merged 5 commits into
mainfrom
fix/ipv6-proxy-coverage
Nov 10, 2026
Merged

andre487 merged 5 commits into
mainfrom
fix/ipv6-proxy-coverage

Conversation

@andre487

@andre487 andre487 commented Nov 10, 2026 •

Copy link
Copy Markdown
Owner

IPv6 literals were rejected by Android validation, JSON import and native configuration parsing before connections were attempted. Valid bare/bracketed addresses now work for proxy and jump hosts; native bootstrap normalizes brackets and URL export emits IPv6 authorities correctly. Bootstrap prefers A across resolvers, then tries AAAA only when no A succeeds and at least one valid NODATA response exists. DNS/HTTP errors alone do not trigger fallback.

Coverage includes:

  • JVM/editor/import tests for all six proxy types, malformed addresses and URL/JSON round trips.
  • Real GOST/OpenSSH IPv4/IPv6 proxy, jump and TCP destination combinations; SOCKS5 UDP; negative authentication controls against direct bypass.
  • A controlled MASQUE relay forwarding to a real IPv6 UDP origin.
  • API 26/35 TUN/JNI scenarios with IPv4 and IPv6 proxy/jump endpoints and IPv6 destinations, including bracketed input through Android bootstrap.
  • A/AAAA preference, invalid responses, cancellation and use of a resolved IPv6 address.

The disposable OpenSSH fixture disables timed source penalties to keep negative authentication cases independent. Device fixtures block direct origin traffic for both address families and wait for the calling UID's VPN default network before sending traffic.

Validation: CI run 479 passed: 360 native tests, 81 real-server integration tests, Android JVM/lint/build checks and both API 26/35 suites. Python tests/style passed on the unchanged ancestor. Only report publication was rerun after GitHub Check API 404 responses; failed tests were not retried.

Limits: GOST 3.3.0 still rejects IPv6 literal CONNECT-UDP, which tests require to fail without direct fallback. The production client has no GOST-specific IPv6 ban and succeeds with the controlled compatible relay. Bootstrap DoH endpoints still require IPv4 reachability; physical IPv6-only uplinks and the reporter's Pixel/GrapheneOS device were not tested.

Fixes #146.

@andre487 andre487 changed the title Fix IPv6 proxy addresses and test IPv6 destinations across transports Fix IPv6 proxy addresses, add AAAA bootstrap fallback and verify IPv6 traffic Nov 10, 2026
@andre487
andre487 marked this pull request as ready for review November 10, 2026 15:47
@andre487
andre487 merged commit 3a41c84 into main Nov 10, 2026
23 of 26 checks passed
@andre487
andre487 deleted the fix/ipv6-proxy-coverage branch November 10, 2026 15:48
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.

is there a trick to ssh to ipv6?

1 participant