Close#1293
Squashed commit of the following:
commit 0981754c5c2c67f2567ee4af0d9ab24377c53413
Merge: ef81f2c8 a6d75118
Author: Simon Zolin <s.zolin@adguard.com>
Date: Thu Jan 16 14:19:20 2020 +0300
Merge remote-tracking branch 'origin/master' into 1293-install
commit ef81f2c886f3bfcff4e4352d7ecea6642be7d8e1
Author: Simon Zolin <s.zolin@adguard.com>
Date: Mon Dec 30 18:32:11 2019 +0300
linter
commit 9e205be53d9de25bd2ad63398644e14b09f95238
Author: Simon Zolin <s.zolin@adguard.com>
Date: Mon Dec 30 17:22:17 2019 +0300
- install: recover from error on DNS server start
Close all modules properly
Don't register HTTP handlers twice
When matched by a host rule, return only the IP address specified in rule.
Respond with an empty IP list to another request type.
:: host -- return nothing to A, return :: to AAAA request
0.0.0.0 host -- return 0.0.0.0 to A, return nothing to AAAA request
Close#1262
Squashed commit of the following:
commit bacd683ef5b52e275323a3c07b370ca08702403e
Author: Simon Zolin <s.zolin@adguard.com>
Date: Mon Dec 16 17:00:49 2019 +0300
fix
commit 3d4f9626460de3e13a621f2b8e535e9e0939e2bb
Author: Simon Zolin <s.zolin@adguard.com>
Date: Mon Dec 16 16:54:23 2019 +0300
fix
commit bf924bf90e9b705883bec88f8d7af11c39c1f322
Author: Simon Zolin <s.zolin@adguard.com>
Date: Mon Dec 16 16:45:41 2019 +0300
add test
commit 43338ea3645a025d69dd838bc732344255960bed
Author: Simon Zolin <s.zolin@adguard.com>
Date: Mon Dec 16 16:07:51 2019 +0300
- DNS: "custom_ip" blocking mode didn't work after app restart
commit 220f32e713a95d2c67355c61e419dd09df9d42b2
Author: Simon Zolin <s.zolin@adguard.com>
Date: Mon Dec 16 15:46:01 2019 +0300
- first run: fix panic on stop in case initialization didn't complete
e.g. when Stats module can't be initialized because of incompatible file system
Close#1261
Squashed commit of the following:
commit acc39ea6c0d88cb9d2b07837e89db2c170263891
Author: Simon Zolin <s.zolin@adguard.com>
Date: Mon Dec 16 12:29:33 2019 +0300
minor
commit 0d2ef3d53185d5ca17797e2ac20f0efc1498a53c
Author: Simon Zolin <s.zolin@adguard.com>
Date: Mon Dec 16 12:13:17 2019 +0300
add link to GH
commit 0da754b1751057968780b457a2f490f4148275a8
Author: Simon Zolin <s.zolin@adguard.com>
Date: Mon Dec 16 11:53:42 2019 +0300
- clients: IPv6 address matching didn't work
Close#1014
Squashed commit of the following:
commit 759248efc0587ff2f288996c47739e602c557a76
Author: Simon Zolin <s.zolin@adguard.com>
Date: Thu Dec 12 19:26:46 2019 +0300
support empty ServerName
commit 68afecd5eca5ae66262b12dcb414b50efe88dc02
Author: Simon Zolin <s.zolin@adguard.com>
Date: Wed Dec 11 14:40:22 2019 +0300
+ DNS: TLS handshake: terminate handshake on bad SNI
Squashed commit of the following:
commit 653544b98dc4d1b9a74e1509d0e6104b71bcdcb3
Author: Simon Zolin <s.zolin@adguard.com>
Date: Wed Dec 11 17:34:41 2019 +0300
* DNS reconfigure: protect against delayed socket fd close
commit 9e650f37dee7f771bf1d9d714c35f0a81788aa16
Author: Simon Zolin <s.zolin@adguard.com>
Date: Wed Dec 11 15:28:33 2019 +0300
- fix race on startup
commit 878fdb8fc4ebbc6fab683a65f5e4298e64c2073e
Author: Simon Zolin <s.zolin@adguard.com>
Date: Wed Dec 11 15:11:21 2019 +0300
* travis: don't run tests
commit 1c4ab60684ee22d55e6d2a3350c0f24d9844255c
Author: Simon Zolin <s.zolin@adguard.com>
Date: Wed Dec 11 14:56:28 2019 +0300
* travis: 'release.sh' and then run tests
commit e1f644b8d9a1f3b46990cdfb1b75fd81b3a49d33
Author: Simon Zolin <s.zolin@adguard.com>
Date: Wed Dec 11 14:52:59 2019 +0300
* set BlockingMode: "null_ip" by default
+ dnsforward: own HTTP handlers
* dnsforward: no DNS reload on ProtectionEnabled setting change
* dnsforward: move QueryLog* settings out
* dnsforward: move dnsfilter settings out
* clients,i18n: no DNS reload on settings change
* dnsfilter is controlled by package home, not dnsforward
* move HTTP handlers to dnsfilter/
* apply filtering settings without DNS server restart
* use only 1 goroutine for filters update
* apply new filters quickly (after they are ready to be used)
DNS module passes additional parameters to Stats module.
This allows Stats to handle HTTP requests by itself - completely removing
all stats-related code from outside.
#454
* commit 'fdf7ee2c08d4177d78fcdc20571bc7d2b61320ae':
* refactor: don't set new configuration while running DNS server
* refactor
* dnsforward: parental control server can be an IP address, not just host name
+ dnsforward, config: add "parental_block_host" and "safebrowsing_block_host" settings
Now we pass filtering rules to urlfilter as filer file names,
rather than the list of rule strings.
(Note: user rules are still passed as the list of rule strings).
As a result, we don't store the contents of filter files in memory.
If question type is AAAA:
Before this patch we responded with NXDOMAIN.
Now we send an empty response if host rule is IPv4;
or we send an AAAA answer if host rule is IPv6.
+ block ipv6 if rule is "0.0.0.0 blockdomain"
Before this patch we could exit the process without waiting for
file writing task to complete.
As a result a file could become corrupted or a large chunk of data
could be missing.
Now the main thread either waits until file writing task completes
or it writes log buffer to file itself.
* dnsforward: prioritize host files over null filter
* dnsforward, config: adjust setting variable to blocking_mode
* dnsforward: use net.IPv4zero for null IP