Commit Graph

36 Commits

Author SHA1 Message Date
Leonard Walter
d0564a8d77 Bunch of DoH fixes bundled together (#419)
* removed unused hostname parameter from quicDial function

* removed outdated use of ioutil

* implemented proper quic 0rtt decision making
2025-01-15 06:26:23 +01:00
Ali
e51f51e1bc move from logrus to slog (#422)
* Migrate from logrus to slog

* fully removing logrus

* should be working now

* Update pipeline.go

Co-authored-by: Frank Olbricht <frank.olbricht@gmail.com>

* Update response-blocklist-name.go

Co-authored-by: Frank Olbricht <frank.olbricht@gmail.com>

* added null logger

* Update pipeline.go

---------

Co-authored-by: Frank Olbricht <frank.olbricht@gmail.com>
2025-01-13 08:43:30 +01:00
Frank Olbricht
2868dbd615 Re-add support for Oblivious DNS (#426)
* Revert "Remove ODOH due to broken dependency (#425)"

This reverts commit 8eecee85ec.

* switch back to updated version of cloudflare/odoh-go that fixes broken dependencies (#427)

---------

Co-authored-by: Leonard Walter <50204487+LeonardWalter@users.noreply.github.com>
2025-01-13 08:39:34 +01:00
Frank Olbricht
8eecee85ec Remove ODOH due to broken dependency (#425)
* Revert "Fixing problems with cloudflare/odoh-go  (#423)"

This reverts commit eed9ea8911.

* Revert "Support for Oblivious DNS client (#118)"

This reverts commit 72e4730046.
2025-01-11 09:11:37 +01:00
Frank Olbricht
72e4730046 Support for Oblivious DNS client (#118)
* Support for Oblivious DNS client

* Update to the ODoH client (#418)

* fixing context problem

* Updated the ODoH client

* allowing ODoH client to send queries without a proxy

* added missing code to load pre configured ODoH server config key

* added missing support for ODoH servers not on port 443

* Implemented feedback on ODoH client

---------

Co-authored-by: Leonard Walter <50204487+LeonardWalter@users.noreply.github.com>
2024-12-24 09:39:21 +09:00
Frank Olbricht
88c7e735f9 Upgrade quic-go to v0.45.1 (#399)
* Upgrade quic-go to v0.45.1

* tidy

* return error
2024-08-03 07:57:03 +02:00
Leonard Walter
f2a08d62b3 Enabling 0-RTT for QUIC/H3 clients (#387)
* Updated the DoQ and DoH QUIC client to enable 0-RTT based on the guide from: https://quic-go.net/docs/http3/client/#using-0-rtt

* changed doq client to use DialEarly for 0-RTT support

* Added 0-RTT toggle - introduced the Use0RTT option to the configuration

* reverted the doqcliet DialEarly changes as they were not needed and had a bug.
Renamed the 0RTT toggle and updated the documentation.

* catching missconfig of 0-RTT and HTTP/2
2024-05-09 07:53:58 +02:00
xDragonZ
a9b215761a Update dependencies & quic-go to v0.43.0 (#384) 2024-05-04 09:10:06 +02:00
Frank Olbricht
2e0610668b Implement Socks5 support (#317)
* Implement Socks5 support

* Support SOCKS5 for DoT

* Socks5 for DoH

* Return interface, not nil pointer of specific type

* Support resolving DNS server names locally instead of through the proxy

* Resolve IP4 only

* Fix go.mod after rebase

* Support LocalAddr directly in the SOCKS5 dialer

* Update docs for SOCKS5
2023-10-18 09:12:34 +02:00
Frank Olbricht
3d62f19be8 Update quic-go to support building with Go 1.21 (#323) 2023-08-22 08:48:39 +02:00
Frank Olbricht
017544e9f4 Copy queries prior to packing them in resolvers (#290)
* Copy queries prior to packing them in resolvers

* Fix race in quic restart logic

* Remove bad lock
2023-04-01 09:16:55 +02:00
Frank Olbricht
961a297d5a New 'query-timeout' option for resolvers (#295)
* New 'query-timeout' option for resolvers

* docs
2023-03-26 12:04:41 +02:00
Matt Keenan
dcb42ec615 close UDP socket after quic new stream fails (#287)
* close UDP socket after quic new stream fails

  - we need to close the UDP socket after a new quic session fails
    before we attempt to retry with a new connection, this is
    because we created the UDP socket not quic-go, so we have to
    clean up our own mess as quic-go won't clean it up for us
  - remove pool for doq connections as this is now fixed in
    quic-go, c.f. https://github.com/quic-go/quic-go/issues/3718
  - update quic-go version in go.mod
  - WARNING: updated quic-go REQUIRES go 1.19 or newer to compile

* fix various issues with PR

* bump go version to 1.19 because quic-go requires it

---------

Co-authored-by: Matt Keenan <matt@mattkeenan.net>
2023-03-03 11:14:07 +01:00
tobyxdd
d9b91436ef Bump quic-go to 0.32.0 2023-02-01 23:04:43 -08:00
Toby
5c7c876064 Bump quic-go to 0.28.1 2022-08-06 12:53:31 -07:00
Frank Olbricht
ab1ca2b657 Update dependencies (#232) 2022-04-10 20:00:42 +02:00
Frank Olbricht
d0a15f423c Fix connection leak when using QUIC (#173)
* Fix connection leak when using QUIC

* Remove override

* go mod tidy
2021-07-30 06:39:31 -06:00
Frank Olbricht
d82fd0c82b Update QUIC to support RFC9000 (#163) 2021-06-12 09:52:13 -06:00
Frank Olbricht
e0d8627f8d Update dependencies (#146)
* Update dependencies

* cleanup
2021-05-01 10:57:50 -06:00
Frank Olbricht
a6f2f1a07c Avoid panic in QUIC error handling (#129)
* Add debugging for #127

* Fix panic
2021-01-31 08:15:21 -07:00
Frank Olbricht
a04d594cb2 Store QUIC server tokens per resolver (#100)
* Store QUIC server tokens per resolver

* Clean up dependencies
2020-11-22 09:19:56 -07:00
SeanBurford
482d40a5db Expvar (#84)
* Add metric tracking

* Clean up metrics structures.

* Add available route metric to router.
2020-09-06 09:55:30 -06:00
Frank Olbricht
3a74e694e5 Increase DoH client timeout and update QUIC lib to work with Go 1.15 (#87) 2020-08-22 07:42:29 -06:00
Frank Olbricht
f9cb6aab39 Support setting source address of resolvers (#75)
* Support setting source address of resolvers

* Support LocalAddr option in UDP and TCP resolvers

* Support local-address option for DoQ and DoT
2020-07-21 07:12:09 -06:00
Frank Olbricht
94387020af Log query type (#69) 2020-06-22 20:19:36 -06:00
Frank Olbricht
6c59cb1a7c Improve logging (#51)
* Improve logging

* fix test
2020-06-07 13:24:51 -06:00
Frank Olbricht
44ca188d38 DoH with QUIC (#34)
* DoH with QUIC

* DoH with QUIC listener
2020-05-25 16:16:39 -06:00
folbrich
a5ea14c8f3 Add bootstrap IP option to DoT and DoH resolvers 2019-07-28 12:09:19 -06:00
folbrich
5cb1c0b0e2 Add/strip padding according to RFC7830 and RFC8467 2019-07-20 16:02:00 -06:00
folbrich
e0fc21813b Add structured logging and log levels 2019-07-20 09:08:09 -06:00
folbrich
b7011e06bf Add DoT listener with support for mutual-TLS 2019-07-13 17:27:29 -06:00
folbrich
051582fa65 Support CAs and client key/crt in DoT and DoH resolvers 2019-07-13 09:37:29 -06:00
folbrich
cee7a3b111 Add idle timeout to DNS connection manager to tear down idle connections 2019-07-06 12:46:53 -06:00
folbrich
b73e663187 Add routing based on client/source IP and more router tests 2019-06-10 19:06:12 -06:00
folbrich
d932a834b7 Minor logging and doc updates. Use a dictionary for resolver-specific config 2019-06-09 09:13:18 -06:00
folbrich
45e1bc8a08 Implement DoH client and fix possible panic 2019-06-08 11:58:32 -06:00