ooni-probe-cli/internal/netxlite
Simone Basso 01a513a496
refactor: DNSTransport I/Os DNS messages (#760)
This diff refactors the DNSTransport model to receive in input a DNSQuery and return in output a DNSResponse.

The design of DNSQuery and DNSResponse takes into account the use case of a transport using getaddrinfo, meaning that we don't need to serialize and deserialize messages when using getaddrinfo.

The current codebase does not use a getaddrinfo transport, but I wrote one such a transport in the Websteps Winter 2021 prototype (https://github.com/bassosimone/websteps-illustrated/).

The design conversation that lead to producing this diff is https://github.com/ooni/probe/issues/2099
2022-05-25 17:03:58 +02:00
..
filtering refactor: DNSTransport I/Os DNS messages (#760) 2022-05-25 17:03:58 +02:00
internal fix(netxlite): reject replies with wrong queryID (#732) 2022-05-14 19:38:46 +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 chore: import improved bogons handling code (#723) 2022-05-13 15:32:47 +02:00
bogon.go feat(netxlite): implements NS queries (#734) 2022-05-16 10:46:53 +02:00
certifi_test.go netxlite: improve docs, tests, and code quality (#493) 2021-09-08 21:19:51 +02:00
certifi.go chore: run go generate ./... (#743) 2022-05-19 20:44:39 +02:00
classify_test.go fix(netxlite): reject replies with wrong queryID (#732) 2022-05-14 19:38:46 +02:00
classify.go fix(netxlite): prefer composition over embedding (#733) 2022-05-15 19:25:27 +02:00
dialer_test.go fix(netxlite): prefer composition over embedding (#733) 2022-05-15 19:25:27 +02:00
dialer.go fix(netxlite): prefer composition over embedding (#733) 2022-05-15 19:25:27 +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 refactor: DNSTransport I/Os DNS messages (#760) 2022-05-25 17:03:58 +02:00
dnsoverudp.go refactor: DNSTransport I/Os DNS messages (#760) 2022-05-25 17:03:58 +02:00
doc.go fix(netxlite): prefer composition over embedding (#733) 2022-05-15 19:25:27 +02:00
errno_darwin_test.go chore: run go generate ./... (#743) 2022-05-19 20:44:39 +02:00
errno_darwin.go chore: run go generate ./... (#743) 2022-05-19 20:44:39 +02:00
errno_freebsd_test.go chore: run go generate ./... (#743) 2022-05-19 20:44:39 +02:00
errno_freebsd.go chore: run go generate ./... (#743) 2022-05-19 20:44:39 +02:00
errno_linux_test.go chore: run go generate ./... (#743) 2022-05-19 20:44:39 +02:00
errno_linux.go chore: run go generate ./... (#743) 2022-05-19 20:44:39 +02:00
errno_openbsd_test.go chore: run go generate ./... (#743) 2022-05-19 20:44:39 +02:00
errno_openbsd.go chore: run go generate ./... (#743) 2022-05-19 20:44:39 +02:00
errno_windows_test.go chore: run go generate ./... (#743) 2022-05-19 20:44:39 +02:00
errno_windows.go chore: run go generate ./... (#743) 2022-05-19 20:44:39 +02:00
errno.go chore: run go generate ./... (#743) 2022-05-19 20:44:39 +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
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 feature: merge measurex and netx archival layer (1/N) (#663) 2022-01-14 12:13:10 +01: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 fix(netxlite): prefer composition over embedding (#733) 2022-05-15 19:25:27 +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 netxlite: factor common code for parsing UDPAddr (#730) 2022-05-14 17:15:08 +02:00
quic.go fix(netxlite): prefer composition over embedding (#733) 2022-05-15 19:25:27 +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 feat(netxlite): implements NS queries (#734) 2022-05-16 10:46:53 +02:00
resolver.go feat(netxlite): implements NS queries (#734) 2022-05-16 10:46:53 +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: use ooni/oocrypto instead of ooni/go (#751) 2022-05-22 19:53:37 +02:00
tls.go refactor: use ooni/oocrypto instead of ooni/go (#751) 2022-05-22 19:53:37 +02:00
tproxy.go fix(netxlite): prefer composition over embedding (#733) 2022-05-15 19:25:27 +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