Crafter.Network/interfaces
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jorijn van der Graaf 78853033e8
feat(tcp): connect over IPv4 and IPv6, and say why a connect failed
- ClientTCP resolves with AF_UNSPEC and tries every address the name
  resolves to, in getaddrinfo's order, the way Python's
  socket.create_connection does. It used to ask for AF_INET only and keep
  the first answer, so `localhost` could not reach a server listening on
  ::1 alone, which is what a dev server on a recent Node does. The connect
  timeout bounds each address on its own; when none connects, what the
  last one failed with is thrown.
- A failed resolve, socket() or connect throws SocketErrorException: the
  std::runtime_error it always was, with the same message, plus the errno
  (SocketErrorKind::System) or the getaddrinfo code
  (SocketErrorKind::Resolver). A caller that reports the cause in its own
  words, such as a Python-style "[Errno 111] Connection refused", no
  longer has to parse it back out of the text.
- The move constructor carries the resolved addresses along.

New: ShouldConnectDualStack, ShouldReportConnectErrors.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 20:28:32 +01:00
..
Crafter.Network-ClientHTTP.cppm SPDX license 2026-07-22 17:55:45 +02:00
Crafter.Network-ClientHTTP1.cppm feat(tls): add a libssl TLS transport and an https:// HTTP/1.1 stack 2026-07-28 20:13:30 +00:00
Crafter.Network-ClientQUIC.cppm feat: TCP-only builds; TCP options and timeouts; receives that report and keep what arrived 2026-10-20 20:04:57 +02:00
Crafter.Network-ClientTCP.cppm feat(tcp): connect over IPv4 and IPv6, and say why a connect failed 2026-10-31 20:28:32 +01:00
Crafter.Network-HTTP.cppm feat(http1): dispatch unmatched paths to an optional fallback handler 2026-07-28 19:41:57 +00:00
Crafter.Network-HTTP1.cppm feat(tls): add a libssl TLS transport and an https:// HTTP/1.1 stack 2026-07-28 20:13:30 +00:00
Crafter.Network-HTTP3.cppm SPDX license 2026-07-22 17:55:45 +02:00
Crafter.Network-ListenerHTTP.cppm feat(http): give ListenerHTTP the same fallback and query-strip routing 2026-07-28 19:42:06 +00:00
Crafter.Network-ListenerHTTP1.cppm feat(tls): add a libssl TLS transport and an https:// HTTP/1.1 stack 2026-07-28 20:13:30 +00:00
Crafter.Network-ListenerQUIC.cppm SPDX license 2026-07-22 17:55:45 +02:00
Crafter.Network-ListenerTCP.cppm SPDX license 2026-07-22 17:55:45 +02:00
Crafter.Network-Stream.cppm feat(tls): add a libssl TLS transport and an https:// HTTP/1.1 stack 2026-07-28 20:13:30 +00:00
Crafter.Network-TLS.cppm feat(tls): add a libssl TLS transport and an https:// HTTP/1.1 stack 2026-07-28 20:13:30 +00:00
Crafter.Network-WebTransport.cppm SPDX license 2026-07-22 17:55:45 +02:00
Crafter.Network.cppm feat: TCP-only builds; TCP options and timeouts; receives that report and keep what arrived 2026-10-20 20:04:57 +02:00