ooni-probe-cli/internal/netxlite
Simone Basso 7e0b47311d
refactor(netxlite): better integration with tracex (#774)
Rather than passing functions to construct complex objects such
as Dialer and QUICDialer, pass interface implementations.

Ensure that a nil implementation does not cause harm.

Make Saver implement the correct interface either directly or
indirectly. We need to implement the correct interface indirectly
for TCP conns (or connected UDP sockets) because we have two
distinct use cases inside netx: observing just the connect event
and observing just the I/O events.

With this change, the construction of composed Dialers and
QUICDialers is greatly simplified and more obvious.

Part of https://github.com/ooni/probe/issues/2121
2022-06-01 08:31:20 +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): better integration with tracex (#774) 2022-06-01 08:31:20 +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
dnsoverhttps_test.go refactor: DNSTransport I/Os DNS messages (#760) 2022-05-25 17:03:58 +02:00
dnsoverhttps.go refactor: DNSTransport I/Os DNS messages (#760) 2022-05-25 17:03:58 +02:00
dnsovertcp_test.go refactor: DNSTransport I/Os DNS messages (#760) 2022-05-25 17:03:58 +02:00
dnsovertcp.go refactor: DNSTransport I/Os DNS messages (#760) 2022-05-25 17:03:58 +02:00
dnsoverudp_test.go fix(dnsoverudp): allow to cancel async round trip immediately (#763) 2022-05-26 23:49:14 +02:00
dnsoverudp.go fix(dnsoverudp): allow to cancel async round trip immediately (#763) 2022-05-26 23:49:14 +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 netxlite: call getaddrinfo and handle platform-specific oddities (#764) 2022-05-28 15:10:30 +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): allow easy dialer chain customization (#770) 2022-05-31 20:02:11 +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 fix(netxlite): prefer composition over embedding (#733) 2022-05-15 19:25:27 +02:00
parallelresolver_test.go refactor: DNSTransport I/Os DNS messages (#760) 2022-05-25 17:03:58 +02:00
parallelresolver.go refactor: DNSTransport I/Os DNS messages (#760) 2022-05-25 17:03:58 +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
resolver_test.go refactor(netxlite): allow easy dialer chain customization (#770) 2022-05-31 20:02:11 +02:00
resolver.go refactor(netxlite): allow easy dialer chain customization (#770) 2022-05-31 20:02:11 +02:00
serialresolver_test.go refactor: DNSTransport I/Os DNS messages (#760) 2022-05-25 17:03:58 +02:00
serialresolver.go refactor: DNSTransport I/Os DNS messages (#760) 2022-05-25 17:03:58 +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