3 weeks agoInclude DNS.SB's resolver in example configuration master
Star Brilliant []
Include DNS.SB's resolver in example configuration

4 weeks agoMerge pull request #47 from rwv/master
Star Brilliant []
Merge pull request #47 from rwv/master

slightly optimize the order of instructions in Dockerfile

4 weeks agooptimize the order of instructions in Dockerfile
seedgou []
optimize the order of instructions in Dockerfile

4 weeks agoMerge pull request #46 from jangrewe/master
Star Brilliant []
Merge pull request #46 from jangrewe/master

Add Dockerfiles

5 weeks agoBuild separate Docker image for doh-server and doh-client
Jan Grewe []
Build separate Docker image for doh-server and doh-client
Make doh-client also listen on both IPv4 and IPv6

5 weeks agoUpdate the sample configuration to teach users how to listen on both IPv4 and IPv6
Star Brilliant []
Update the sample configuration to teach users how to listen on both IPv4 and IPv6

5 weeks agoUpdate Dockerfile to make doh-server listen on IPv4 and IPv6
Jan Grewe []
Update Dockerfile to make doh-server listen on IPv4 and IPv6

5 weeks agoAdd Dockerfile
Jan Grewe []
Add Dockerfile

5 weeks agoRelease 2.1.0
Star Brilliant []
Release 2.1.0

5 weeks agoDisable static linking to Swift standard libraries
Star Brilliant []
Disable static linking to Swift standard libraries

According to Apple: Swift compiler no longer supports statically linking the Swift libraries. They're included in the OS by default starting with macOS Mojave 10.14.4. For macOS Mojave 10.14.3 and earlier, there's an optional Swift library package that can be downloaded from "More Downloads" for Apple Developers at https://developer.apple.com/download/more/

5 weeks agoExplain why ECS is disabled by some servers
Star Brilliant []
Explain why ECS is disabled by some servers

5 weeks agoMerge pull request #44 from modib/quad9-dns-config
Star Brilliant []
Merge pull request #44 from modib/quad9-dns-config

Added Quad9 servers in config.

5 weeks agoUpdated Quad9 config with ECS, DNSSEC info.
B. Modi []
Updated Quad9 config with ECS, DNSSEC info.

5 weeks agoMerge pull request #45 from wsquasher/master
Star Brilliant []
Merge pull request #45 from wsquasher/master

Use TCP when appropriate for the given query type/response

5 weeks agoUse TCP when appropriate for the given query type/response
Wesley Squasher []
Use TCP when appropriate for the given query type/response

5 weeks agoAdded Quad9 servers in config. Good for malware threat prevention.
B. Modi []
Added Quad9 servers in config. Good for malware threat prevention.

5 weeks agoMerge pull request #43 from modib/macos-build-error-fix
Star Brilliant []
Merge pull request #43 from modib/macos-build-error-fix

Make Makefile compatible with swift5 and older swift versions

5 weeks agoMake Makefile compatible with swift5 and older swift versions
B. Modi []
Make Makefile compatible with swift5 and older swift versions

2 months agoAdd local_addr configuration for doh-server (#39)
Ming Aldrich-Gan []
Add local_addr configuration for doh-server (#39)

* Add local_addr configuration for doh-server

This commit adds a `local_addr` string value to `doh-server.conf`, specifying the IP address and port from which outgoing calls to upstream DNS resolvers should originate. This value is set as the `udpClient`'s and `tcpClient`'s `Dialer.LocalAddr` when initializing a `NewServer`. If the value is left empty in `doh-server.conf`, it defaults to the first `listen` address (which in turn defaults to `"127.0.0.1:8053"`).

One use case for this would be if `doh-server` is proxying requests to a local DNS resolver (e.g. `unbound` or Pi-hole). Up to version 2.0.0, all DNS queries from `doh-server` are sent from `127.0.0.1` (even if the `listen` address is set to a different loopback IP address), making it hard to distinguish them from all other local DNS queries from the same machine in the query logs.

* Revert defaulting of local_addr to listen address

This commit reverts to the existing behavior when `conf.LocalAddr == ""`, i.e. letting `dns.Client` instantiate its own `Dialer` with the default local address.

* Fixup comment in configuration file

* Log errors from Dialer instantiation (e.g. if LocalAddr port is missing)

* Fixup other comment in configuration file

* Return error and log fatal

2 months agoRelease 2.0.1 v2.0.1
Star Brilliant []
Release 2.0.1

2 months agoFix random selector (#41)
Sherlock Holo []
Fix random selector (#41)

* Fix a bug: when only have one upstream, random selector will panic

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

3 months agoUpdate Changelog v2.0.0
Star Brilliant []
Update Changelog

3 months agolog real client ip behind a HTTPS gateway (#38)
qyb []
log real client ip behind a HTTPS gateway (#38)

* log real client ip behind a HTTPS gateway

* fix tab/space indent

* better compatible for apache/nginx log default format

* add config option

3 months agoAdd LVS weight round robin selector (#36)
Sherlock Holo []
Add LVS weight round robin selector (#36)

* Add upstream selector, there are two selector now:
- random selector
- weight random selector

random selector will choose upstream at random; weight random selector will choose upstream at random with weight

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Rewrite config and config file example, prepare for weight round robbin selector

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Replace bad implement of weight random selector with weight round robbin selector, the algorithm is nginx weight round robbin like

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Use new config module

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Disable deprecated DualStack set

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Fix typo

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Optimize upstreamSelector judge

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Fix typo

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Add config timeout unit tips

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Set wrr http client timeout to replace http request timeout

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Add weight value range

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Add a line ending for .gitignore

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Optimize config file style

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Modify Weight type to int32

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Add upstreamError

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Rewrite Selector interface and wrr implement

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Use http module predefined constant to judge req.response.StatusCode

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Use Selector.ReportUpstreamError to report upstream error for evaluation loop in real time

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Make client selector field private

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Replace config file url to URL
Add miss space for 'weight= 50'

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Rewrite Selector.ReportUpstreamError to Selector.ReportUpstreamStatus, report upstream ok in real time

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Fix checkIETFResponse: if upstream OK, won't increase weight

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Fix typo

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Rewrite wrr evaluation, concurrent check upstream and reduce interval to 15s

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Add lvs wrr selector config

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Add DebugReporter interface, when client verbose is true and the selector implements it, will report all upstream weights every 15s

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Rename WeightRoundRobinSelector to NginxWRRSelector

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Add LVSSelector

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Remove useless log

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

3 months agoBump version to 2.0.0
Star Brilliant []
Bump version to 2.0.0

3 months agoUpdate build scripts
Star Brilliant []
Update build scripts

3 months agoReplace Url with URL
Star Brilliant []
Replace Url with URL

3 months agoAdd backend weight round robin select (#34)
Sherlock Holo []
Add backend weight round robin select (#34)

* Add upstream selector, there are two selector now:
- random selector
- weight random selector

random selector will choose upstream at random; weight random selector will choose upstream at random with weight

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Rewrite config and config file example, prepare for weight round robbin selector

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Replace bad implement of weight random selector with weight round robbin selector, the algorithm is nginx weight round robbin like

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Use new config module

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Disable deprecated DualStack set

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Fix typo

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Optimize upstreamSelector judge

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Fix typo

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Add config timeout unit tips

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Set wrr http client timeout to replace http request timeout

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Add weight value range

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Add a line ending for .gitignore

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Optimize config file style

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Modify Weight type to int32

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Add upstreamError

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Rewrite Selector interface and wrr implement

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Use http module predefined constant to judge req.response.StatusCode

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Use Selector.ReportUpstreamError to report upstream error for evaluation loop in real time

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Make client selector field private

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Replace config file url to URL
Add miss space for 'weight= 50'

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Rewrite Selector.ReportUpstreamError to Selector.ReportUpstreamStatus, report upstream ok in real time

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Fix checkIETFResponse: if upstream OK, won't increase weight

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

* Fix typo

Signed-off-by: Sherlock Holo <sherlockya@gmail.com>

6 months agoBump to version 1.4.3
Star Brilliant []
Bump to version 1.4.3

6 months agoRelease 1.4.2 v1.4.2
Star Brilliant []
Release 1.4.2

6 months agoRemove dns.ErrTruncated according to https://github.com/miekg/dns/pull/815
Star Brilliant []
Remove dns.ErrTruncated according to https://github.com/miekg/dns/pull/815

6 months agoMerge pull request #30 from Sherlock-Holo/master
Star Brilliant []
Merge pull request #30 from Sherlock-Holo/master

Refine runtime.GOOS check, use switch case to replace a long if

6 months agoRefine runtime.GOOS check, use switch case to replace a long if
Sherlock Holo []
Refine runtime.GOOS check, use switch case to replace a long if

6 months agoUse time.Since to replace time.Now().Sub
Star Brilliant []
Use time.Since to replace time.Now().Sub

6 months agoAdd PID file support
Star Brilliant []
Add PID file support

7 months agoRemove an item from Changelog since it was actually fixed in eariler version
Star Brilliant []
Remove an item from Changelog since it was actually fixed in eariler version

7 months agoCorrect spelling
Star Brilliant []
Correct spelling

7 months agoBump version to 1.4.2
Star Brilliant []
Bump version to 1.4.2

7 months agoRelease 1.4.1 v1.4.1
Star Brilliant []
Release 1.4.1

7 months agoAdd detectportal.firefox.com to default passthrough list
Star Brilliant []
Add detectportal.firefox.com to default passthrough list

7 months agoEnable CORS by default, which is necessary for AJAX resolver to run
Star Brilliant []
Enable CORS by default, which is necessary for AJAX resolver to run

7 months agoDetect context.DeadlineExceeded
Star Brilliant []
Detect context.DeadlineExceeded

7 months agoUse context for more functions
Star Brilliant []
Use context for more functions

7 months agoPut cancel() earlier
Star Brilliant []
Put cancel() earlier

7 months agoUse RCODE_REFUSED for unsupported Qclass
Star Brilliant []
Use RCODE_REFUSED for unsupported Qclass

7 months agoTry to use context.WithTimeout to detect HTTP timeout. Hopefully it might work.
Star Brilliant []
Try to use context.WithTimeout to detect HTTP timeout. Hopefully it might work.

7 months agoSlightly change the log format
Star Brilliant []
Slightly change the log format

7 months agoAdd passthrough feature, tests are welcome
Star Brilliant []
Add passthrough feature, tests are welcome

7 months agoFix HTTP stream leaking problem
Star Brilliant []
Fix HTTP stream leaking problem

7 months agoMerge pull request #28 from Chaz6/patch-1
Star Brilliant []
Merge pull request #28 from Chaz6/patch-1

doh-server: change to google.go

7 months agoUpdate google.go
Chris Hills []
Update google.go

Make "cd" check case-insensitive.

7 months agodoh-server: change to google.go
Chris Hills []
doh-server: change to google.go

Allow the "cd" parameter to be case insensitive to work with some clients that send True/False instead of true/false such as gDNS.

8 months agoCongratulations RFC 8484, remove the word "draft" from Readme
Star Brilliant []
Congratulations RFC 8484, remove the word "draft" from Readme

8 months agoCongratulations RFC 8484, remove the word "draft" from Readme
Star Brilliant []
Congratulations RFC 8484, remove the word "draft" from Readme

8 months agoUpdate Readme, fix issue #27
Star Brilliant []
Update Readme, fix issue #27

8 months agoUpdate Readme
Star Brilliant []
Update Readme

8 months agoAdd a ink to a guide
Star Brilliant []
Add a ink to a guide

8 months agoFix panic with debug_http_headers
Star Brilliant []
Fix panic with debug_http_headers

8 months agoMerge pull request #22 from paulie-g/master
Star Brilliant []
Merge pull request #22 from paulie-g/master

Fix segfault when no_cookies=true

8 months agoFix segfault when no_cookies=true
Paul G []
Fix segfault when no_cookies=true

8 months agoBuild doh-logger with static libswiftCore, fix #20
Star Brilliant []
Build doh-logger with static libswiftCore, fix #20

8 months agoAdd configuration option: debug_http_headers
Star Brilliant []
Add configuration option: debug_http_headers

9 months agoBump version to 1.3.11
Star Brilliant []
Bump version to 1.3.11

9 months agoRelease 1.3.10 v1.3.10
Star Brilliant []
Release 1.3.10

9 months agoEnable application/dns-message (draft-13) by default, since Google has finally supported it
Star Brilliant []
Enable application/dns-message (draft-13) by default, since Google has finally supported it

10 months agoMove linux-install.* to contrib/
Star Brilliant []
Move linux-install.* to contrib/

10 months agoBump version to 1.3.10
Star Brilliant []
Bump version to 1.3.10

10 months agoRelease 1.3.9 v1.3.9
Star Brilliant []
Release 1.3.9

10 months agoChange the ECS prefix length from /48 to /56 for IPv6, per RFC 7871
Star Brilliant []
Change the ECS prefix length from /48 to /56 for IPv6, per RFC 7871

10 months agoUpdate Readme to instruct Debian users to set $GOROOT
Star Brilliant []
Update Readme to instruct Debian users to set $GOROOT

10 months agoIf $GOROOT is defined, Makefile should respect the value, fix #8
Star Brilliant []
If $GOROOT is defined, Makefile should respect the value, fix #8

10 months agoAdd 5380 as an additional default doh-client port
Star Brilliant []
Add 5380 as an additional default doh-client port

11 months agoFix #16: doh-client panics when connecting no_cookies = true
Star Brilliant []
Fix #16: doh-client panics when connecting no_cookies = true

11 months agoUpdate example configuration
Star Brilliant []
Update example configuration

11 months agoUpdate example configuration
Star Brilliant []
Update example configuration

11 months agoBump version to 1.3.9
Star Brilliant []
Bump version to 1.3.9

11 months agoRelease 1.3.8 v1.3.8
Star Brilliant []
Release 1.3.8

11 months agoWorkaround a bug causing Firefox 61-62 to reject responses with Content-Type = application/dns-message
Star Brilliant []
Workaround a bug causing Firefox 61-62 to reject responses with Content-Type = application/dns-message

11 months agoWorkaround a bug causing Firefox 61-62 to reject responses with Content-Type = application/dns-message
Star Brilliant []
Workaround a bug causing Firefox 61-62 to reject responses with Content-Type = application/dns-message

11 months agoWorkaround a bug causing Firefox 61-62 to reject responses with Content-Type = application/dns-message
Star Brilliant []
Workaround a bug causing Firefox 61-62 to reject responses with Content-Type = application/dns-message

11 months agoPreserve TransactionID
Star Brilliant []
Preserve TransactionID

11 months agoDisable preventing capitalization scrambling
Star Brilliant []
Disable preventing capitalization scrambling

11 months agoTurn on no_cookies by default according to the IETF draft
Star Brilliant []
Turn on no_cookies by default according to the IETF draft

11 months agoConstruct a real DNS packet for DNSCrypt-Proxy
Star Brilliant []
Construct a real DNS packet for DNSCrypt-Proxy

11 months agoRemove offensive words :-)
Star Brilliant []
Remove offensive words :-)

11 months agoUpdate Readme
Star Brilliant []
Update Readme

11 months agoUpdate Readme
Star Brilliant []
Update Readme

11 months agoUpdate documentation about TLS
Star Brilliant []
Update documentation about TLS

This is to avoid confusions like issue #12

11 months agoBump version to 1.3.8
Star Brilliant []
Bump version to 1.3.8

11 months agoRelease 1.3.7 v1.3.7
Star Brilliant []
Release 1.3.7

11 months agoWorkaround a bug causing DNSCrypt-Proxy to expect a response with TransactionID = 0xcafe
Star Brilliant []
Workaround a bug causing DNSCrypt-Proxy to expect a response with TransactionID = 0xcafe

11 months agoWorkaround a bug causing Unbound to refuse returning anything about the root
Star Brilliant []
Workaround a bug causing Unbound to refuse returning anything about the root

12 months agoFix typo
Star Brilliant []
Fix typo

12 months agoInstall default configuration files to *.conf.example
Star Brilliant []
Install default configuration files to *.conf.example

12 months agoPrint upstream information if error happens
Star Brilliant []
Print upstream information if error happens

12 months agoAdd CloudFlare DNS resolver for Tor to the preset
Star Brilliant []
Add CloudFlare DNS resolver for Tor to the preset

12 months agoRelease 1.3.6 v1.3.6
Star Brilliant []
Release 1.3.6

12 months agoAdd an option to disable IPv6, this option is available to client only
Star Brilliant []
Add an option to disable IPv6, this option is available to client only

13 months agoRevert "Conflict with systemd-resolved.service"
Star Brilliant []
Revert "Conflict with systemd-resolved.service"

This reverts commit 88b3c95710536ba351132276783e6cd362629eb2.

13 months agoWrite a logger for macOS systems
Star Brilliant []
Write a logger for macOS systems