ooni-probe-cli/internal/netxlite
Simone Basso 8f7e3803eb
feat(netxlite): implement DNSTransport wrapping (#776)
Acknowledge that transports MAY be used in isolation (i.e., outside
of a Resolver) and add support for wrapping.

Ensure that every factory that creates an unwrapped type is named
accordingly to hopefully ensure there are no surprises.

Implement DNSTransport wrapping and use a technique similar to the
one used by Dialer to customize the DNSTransport while constructing
more complex data types (e.g., a specific resolver).

Ensure that the stdlib resolver's own "getaddrinfo" transport (1)
is wrapped and (2) could be extended during construction.

This work is part of my ongoing effort to bring to this repository
websteps-illustrated changes relative to netxlite.

Ref issue: https://github.com/ooni/probe/issues/2096
2022-06-01 11:10:08 +02:00
..
filtering feat(netxlite): observe additional DNS-over-UDP responses (#762) 2022-05-26 20:09:00 +02:00
internal netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +02:00
mocks cli: upgrade to lucas-clemente/quic-go@v0.27.0 (#715) 2022-05-06 12:24:03 +02:00
quictesting [forwardport] fix: avoid http3 for dns.google and www.google.com (#593) (#594) 2021-11-12 14:43:28 +01:00
bogon_test.go refactor: continue to simplify engine/netx (#769) 2022-05-31 08:11:07 +02:00
bogon.go refactor: continue to simplify engine/netx (#769) 2022-05-31 08:11:07 +02:00
certifi_test.go netxlite: improve docs, tests, and code quality (#493) 2021-09-08 21:19:51 +02:00
certifi.go netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +02:00
classify_test.go netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +02:00
classify.go netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +02:00
dialer_test.go refactor(netxlite): introduce the getaddrinfo transport (#775) 2022-06-01 09:59:44 +02:00
dialer.go refactor(netxlite): better integration with tracex (#774) 2022-06-01 08:31:20 +02:00
dnsdecoder_test.go refactor: DNSTransport I/Os DNS messages (#760) 2022-05-25 17:03:58 +02:00
dnsdecoder.go refactor: DNSTransport I/Os DNS messages (#760) 2022-05-25 17:03:58 +02:00
dnsencoder_test.go refactor: DNSTransport I/Os DNS messages (#760) 2022-05-25 17:03:58 +02:00
dnsencoder.go refactor: DNSTransport I/Os DNS messages (#760) 2022-05-25 17:03:58 +02:00
dnsovergetaddrinfo_test.go refactor(netxlite): introduce the getaddrinfo transport (#775) 2022-06-01 09:59:44 +02:00
dnsovergetaddrinfo.go refactor(netxlite): introduce the getaddrinfo transport (#775) 2022-06-01 09:59:44 +02:00
dnsoverhttps_test.go feat(netxlite): implement DNSTransport wrapping (#776) 2022-06-01 11:10:08 +02:00
dnsoverhttps.go feat(netxlite): implement DNSTransport wrapping (#776) 2022-06-01 11:10:08 +02:00
dnsovertcp_test.go feat(netxlite): implement DNSTransport wrapping (#776) 2022-06-01 11:10:08 +02:00
dnsovertcp.go feat(netxlite): implement DNSTransport wrapping (#776) 2022-06-01 11:10:08 +02:00
dnsoverudp_test.go feat(netxlite): implement DNSTransport wrapping (#776) 2022-06-01 11:10:08 +02:00
dnsoverudp.go feat(netxlite): implement DNSTransport wrapping (#776) 2022-06-01 11:10:08 +02:00
dnstransport_test.go feat(netxlite): implement DNSTransport wrapping (#776) 2022-06-01 11:10:08 +02:00
dnstransport.go feat(netxlite): implement DNSTransport wrapping (#776) 2022-06-01 11:10:08 +02:00
doc.go netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +02:00
errno_darwin_test.go netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +02:00
errno_darwin.go netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +02:00
errno_freebsd_test.go netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +02:00
errno_freebsd.go netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +02:00
errno_linux_test.go netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +02:00
errno_linux.go netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +02:00
errno_openbsd_test.go netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +02:00
errno_openbsd.go netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +02:00
errno_windows_test.go netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +02:00
errno_windows.go netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +02:00
errno.go netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +02:00
errwrapper_test.go fix(netxlite): prefer composition over embedding (#733) 2022-05-15 19:25:27 +02:00
errwrapper.go fix(netxlite): prefer composition over embedding (#733) 2022-05-15 19:25:27 +02:00
getaddrinfo_bsd_test.go getaddrinfo: fix CGO_ENABLED=0 and record resolver type (#765) 2022-05-30 07:34:25 +02:00
getaddrinfo_bsd.go netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +02:00
getaddrinfo_cgo.go getaddrinfo: fix CGO_ENABLED=0 and record resolver type (#765) 2022-05-30 07:34:25 +02:00
getaddrinfo_linux_test.go netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +02:00
getaddrinfo_linux.go netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +02:00
getaddrinfo_otherwise.go netxlite: do not call netgo the CGO_ENABLED=0 resolver (#766) 2022-05-30 10:06:53 +02:00
getaddrinfo_test.go netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +02:00
getaddrinfo_windows_test.go getaddrinfo: fix CGO_ENABLED=0 and record resolver type (#765) 2022-05-30 07:34:25 +02:00
getaddrinfo_windows.go netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +02:00
getaddrinfo.go netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +02:00
http_test.go fix(netxlite): prefer composition over embedding (#733) 2022-05-15 19:25:27 +02:00
http.go fix(netxlite): prefer composition over embedding (#733) 2022-05-15 19:25:27 +02:00
http3_test.go cli: upgrade to lucas-clemente/quic-go@v0.27.0 (#715) 2022-05-06 12:24:03 +02:00
http3.go fix(netxlite): prefer composition over embedding (#733) 2022-05-15 19:25:27 +02:00
integration_test.go feat(netxlite): implement DNSTransport wrapping (#776) 2022-06-01 11:10:08 +02:00
iox_test.go fix(netxlite): prefer composition over embedding (#733) 2022-05-15 19:25:27 +02:00
iox.go fix(netxlite): prefer composition over embedding (#733) 2022-05-15 19:25:27 +02:00
legacy.go refactor(netxlite): introduce the getaddrinfo transport (#775) 2022-06-01 09:59:44 +02:00
maybeproxy_test.go refactor(session.go): replace engine/netx with netxlite (#767) 2022-05-30 22:00:45 +02:00
maybeproxy.go refactor(session.go): replace engine/netx with netxlite (#767) 2022-05-30 22:00:45 +02:00
operations.go feat(netxlite): implement DNSTransport wrapping (#776) 2022-06-01 11:10:08 +02:00
quic_test.go refactor(netxlite): better integration with tracex (#774) 2022-06-01 08:31:20 +02:00
quic.go refactor(netxlite): better integration with tracex (#774) 2022-06-01 08:31:20 +02:00
quirks_test.go fix(netxlite): prefer composition over embedding (#733) 2022-05-15 19:25:27 +02:00
quirks.go fix(netxlite): prefer composition over embedding (#733) 2022-05-15 19:25:27 +02:00
resolvercore_test.go feat(netxlite): implement DNSTransport wrapping (#776) 2022-06-01 11:10:08 +02:00
resolvercore.go feat(netxlite): implement DNSTransport wrapping (#776) 2022-06-01 11:10:08 +02:00
resolverparallel_test.go feat(netxlite): implement DNSTransport wrapping (#776) 2022-06-01 11:10:08 +02:00
resolverparallel.go refactor(netxlite): introduce the getaddrinfo transport (#775) 2022-06-01 09:59:44 +02:00
resolverserial_test.go feat(netxlite): implement DNSTransport wrapping (#776) 2022-06-01 11:10:08 +02:00
resolverserial.go feat(netxlite): implement DNSTransport wrapping (#776) 2022-06-01 11:10:08 +02:00
shaping_otherwise_test.go refactor: only use shaping dialer for ndt7 and dash (#754) 2022-05-24 18:23:42 +02:00
shaping_otherwise.go refactor: only use shaping dialer for ndt7 and dash (#754) 2022-05-24 18:23:42 +02:00
shaping_shaping_test.go refactor: only use shaping dialer for ndt7 and dash (#754) 2022-05-24 18:23:42 +02:00
shaping_shaping.go refactor: only use shaping dialer for ndt7 and dash (#754) 2022-05-24 18:23:42 +02:00
shaping.go refactor: only use shaping dialer for ndt7 and dash (#754) 2022-05-24 18:23:42 +02:00
tls_test.go refactor(netxlite): allow easy dialer chain customization (#770) 2022-05-31 20:02:11 +02:00
tls.go refactor: use ooni/oocrypto instead of ooni/go (#751) 2022-05-22 19:53:37 +02:00
tproxy.go getaddrinfo: fix CGO_ENABLED=0 and record resolver type (#765) 2022-05-30 07:34:25 +02:00
utls_test.go refactor: use ooni/oocrypto instead of ooni/go (#751) 2022-05-22 19:53:37 +02:00
utls.go refactor: use ooni/oocrypto instead of ooni/go (#751) 2022-05-22 19:53:37 +02:00