feat(http): the client reads the HTTPS record of an origin #561
Loading…
Reference in a new issue
No description provided.
Delete branch "loop/558-http-client-https-record"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #558
Step 2 of epic #71 (RFC 9460).
A
Clientwith aresolvernow asks for the HTTPS record of anhttpsorigin before it connects (<host>for port 443,_<port>._https.<host>otherwise):.count as no record.port,ipv4hint,ipv6hint,alpnandno-default-alpnare honoured,mandatoryis checked against the implemented keys.http/1.1is the only protocol offered until HTTP/2 (#72).Hostand the TLS server name stay the origin's; a missing record, a failed lookup, an unusable record or a failing service fall through to the next service and finally to the direct connection as before.Logic lives in
std/http/src/binding.trb;client.trbuses it inopenConnection. New conformance testhttp-client-https-record(28 scenarios, loopback zone and TLS servers). Docs:DNS.mdslice 7,http.md, regenerated skills.Not exercised locally: the native run and the IPv6 hint path (shares the IPv4 code); CI covers the native lane.
01ec6268f515dd26ed61Review of
6a2218b(head matches the task).http-client-https-record(28 scenarios: port/owner name, alias chains incl. 8/9 hops, loop,., priorities, hints, alpn/no-default-alpn, mandatory, failing/falling-through services, SERVFAIL, literal, no resolver). CI green for this head (tier A/B, gates, pdisc, commit messages)..target, port range check, mandatory check against implemented keys, hints only when the target has no own address; Host and TLS server name stay the origin's; every failure falls through to the direct connection.connectThroughrefactor intoaddressesOf/connectAnyis behaviour-preserving.http/1.1).Non-blocking:
Approved; merging by rebase.