Commit Graph

137 Commits

Author SHA1 Message Date
Simon Zolin 1bb6638db7 + dnsforward: use Rewrites table 2019-07-29 11:48:24 +03:00
Simon Zolin b66e370ffc * dnsfilter: refactor: a simple approach to convert Reason to string 2019-07-29 11:37:10 +03:00
Simon Zolin d9265aa9a8 fix tests 2019-07-23 20:01:50 +03:00
Simon Zolin 6f51df7d2e * dnsfilter: use fastcache instead of gcache 2019-07-23 17:14:13 +03:00
Simon Zolin 81303b5db7 + config: add cache size settings 2019-07-23 15:57:44 +03:00
Simon Zolin a79643f23e + dnsfilter-test: override global safe-browsing setting with a per-client setting 2019-07-15 14:03:22 +03:00
Simon Zolin 57c510631e - dnsfilter: fix crash when global setting 'SafeSearch' is off
but per-client setting is on
2019-07-15 12:10:43 +03:00
Simon Zolin 0a1d7fd707 - fix tests 2019-07-09 11:35:39 +03:00
Simon Zolin b0cfd7228e - dnsfilter: fix post-install error "filter file not found"
Right after installation we don't have the filter files downloaded.
While they are being downloaded, we replace them with an empty filter.
2019-07-05 17:35:40 +03:00
Simon Zolin 134d9275bb * use urlfilter v0.4.0
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.
2019-07-04 14:10:01 +03:00
Simon Zolin 1c9abd6107 Merge: + dhcpd, clients, dnsfilter: add more tests
#788

* commit '25da23497a19118a22b97d64749fa70337544116':
  + dnsfilter: more tests
  + dhcpd, clients: add more tests
2019-07-01 19:26:27 +03:00
Simon Zolin 64f66cfb5d * dnsfilter: fix tests: pass config object to NewForTest() 2019-07-01 19:24:52 +03:00
Simon Zolin 42b76ada9d rename dnsfContext -> dnsFilterContext 2019-06-27 10:48:12 +03:00
Simon Zolin 25da23497a + dnsfilter: more tests 2019-06-26 18:13:09 +03:00
Simon Zolin 2307f55715 * dnsfilter: use a single global context object 2019-06-24 19:00:03 +03:00
Andrey Meshkov 082354204b Fix #831
This commit fixes panic when customDialContext fails to resolve the host's address.
2019-06-18 16:18:13 +03:00
Andrey Meshkov 07db927246 Fix #727 - use default parental sensitivity when it's not set 2019-06-06 22:42:17 +03:00
Simon Zolin 3baa6919dc - fix tests and linter issues 2019-05-31 12:27:13 +03:00
Simon Zolin 8bf76c331d + dnsfilter: use callback function for applying per-client settings 2019-05-28 18:44:27 +03:00
Simon Zolin f23507a554 * dnsfilter: parental/safebrowsing: add setting to switch between HTTP and HTTPS 2019-05-27 18:11:05 +03:00
Simon Zolin e2579c72bd * dnsfilter: fix tests 2019-05-24 18:08:08 +03:00
Simon Zolin ac8f703407 + dnsforward: support IPv6 (AAAA response)
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"
2019-05-24 18:08:08 +03:00
Simon Zolin 9ad4bba9ab * dnsfilter: return the correct IP address (host rules) 2019-05-24 18:08:08 +03:00
Simon Zolin 00e1b6ca08 * dnsfilter: use 'https' for safe-browsing and parental control 2019-05-23 17:26:50 +03:00
Simon Zolin 5ec747b30b * dnsfilter: adapt tests to new interface 2019-05-17 18:22:57 +03:00
Simon Zolin 829415da5b * dnsfilter: use urlfilter package
+ new config setting 'filtering_temp_filename'

* remove AddRules(), modify New()
2019-05-17 18:22:57 +03:00
Simon Zolin 3396d68019 * dnsfilter: remove code for filtering rules 2019-05-17 18:22:57 +03:00
Simon Zolin bd68bf2e25 * dns: rename dnsfilter.Filter.Rule -> dnsfilter.Filter.Data 2019-05-17 18:22:57 +03:00
Simon Zolin d918e5b418 use maxDialCacheSize constant 2019-05-15 12:03:20 +03:00
Simon Zolin b3461d37ca rename functions and container 2019-05-13 14:47:55 +03:00
Simon Zolin 24ae61de3e + dnsfilter: cache IP addresses of safebrowsing and parental control servers 2019-05-13 14:16:07 +03:00
Simon Zolin c4e67690f4 * dnsfilter: don't use global variable for custom resolver function 2019-04-24 12:49:12 +03:00
Simon Zolin f6023b395e - dnsfilter: prevent recursion when both parental control and safebrowsing are enabled 2019-04-24 12:38:05 +03:00
Aleksey Dmitrevskiy a860c8e6ff - dnsfilter: fix npe in dnsfilter test 2019-04-23 15:09:23 +03:00
Aleksey Dmitrevskiy 0794704f74 - dnsfilter: fix safesearch issue #268 2019-04-23 15:08:41 +03:00
Simon Zolin a1b1877667 + parental, safesearch: use our own DNS resolver instead of system default 2019-04-18 14:31:13 +03:00
Johann Richard dfa39293a1
Update safesearch.go
* Beautify again with`gofmt -s`
2019-03-24 19:34:29 +01:00
Johann Richard 65364930f7
Update safesearch.go
* Beautify the addition
2019-03-24 19:26:40 +01:00
Johann Richard 53ea2d28cf
Update safesearch.go
* Add SafeSearch for duckduckgo.com
2019-03-24 19:24:31 +01:00
Aleksey Dmitrevskiy 6b223e2992 * dnsfilter: extend logging 2019-03-18 14:50:33 +03:00
Aleksey Dmitrevskiy 3929f0da44 [change] control: Handle upstream config with JSON 2019-02-28 13:01:41 +03:00
Simon Zolin 5cb6d97cd7 * use new logger - AdguardTeam/golibs/log 2019-02-27 15:02:11 +03:00
Andrey Meshkov c71d6ed433 Fix race in safesearch tests 2019-02-25 18:56:51 +03:00
Aleksey Dmitrevskiy 86279f19b0 Add TODO 2019-02-25 17:15:50 +03:00
Aleksey Dmitrevskiy d0f4f22e0d Add safesearch test for dnsforward 2019-02-25 14:58:54 +03:00
Aleksey Dmitrevskiy 3916f1073d Use go tools 2019-02-22 16:41:30 +03:00
Aleksey Dmitrevskiy 623c3bba09 Fix #576 - Fix safesearch 2019-02-22 16:34:36 +03:00
Eugene Bujak f9d1948f6a Fix data race found by tests -- https://travis-ci.org/AdguardTeam/AdGuardHome/jobs/489674061#L970 2019-02-07 14:45:46 +03:00
Andrey Meshkov ec6b1f7c42 Added golangci-lint configuration and prepared for the integrattion 2019-01-25 20:13:57 +03:00
Andrey Meshkov a0157e39c6 Use EnableAll in gometalinter config 2019-01-25 20:13:57 +03:00
Andrey Meshkov d078851246 gometalinter 2019-01-25 20:13:57 +03:00
Eugene Bujak 368e2d1ebd move log wrapper library outside into hmage/golibs/log 2018-12-29 19:12:45 +03:00
Eugene Bujak d8802a9709 Use new log wrapper and add more functions to it. 2018-12-29 17:37:18 +03:00
Eugene Bujak e056fb2eb9 Remove unused code. 2018-12-06 17:19:04 +03:00
Eugene Bujak c82a5ac0cb dnsfilter -- fix broken tests 2018-12-06 16:54:48 +03:00
Eugene Bujak 2281b60ebb dnsfilter -- add trace() 2018-12-05 16:57:21 +03:00
Eugene Bujak 7d2e39ed52 dnsfilter -- Add a convinience function to add all rules from all filters. 2018-12-05 16:57:21 +03:00
Eugene Bujak e26837d9e8 dnsfilter -- Add parameter to New() to supply optional initial config. 2018-12-05 16:57:21 +03:00
Eugene Bujak ce615e1855 dnsfilter -- Get rid of accessors. 2018-12-05 16:57:21 +03:00
Eugene Bujak 87c54ebd4c Move Filter definition from dnsforward to dnsfilter, it belongs there. 2018-12-05 16:57:21 +03:00
Eugene Bujak 47e2a1004d Remove IDE-specific noise from source code. 2018-11-27 16:05:43 +03:00
Andrey Meshkov c500345d16 Fix #460 2018-11-26 14:09:43 +03:00
Andrey Meshkov 1fa250bb35 Use restrictmoderate.youtube.com #265 2018-11-26 11:05:39 +03:00
Andrey Meshkov fc7d93b920 Force safe search on Youtube 2018-11-06 15:03:42 +03:00
Eugene Bujak 2449075bca Revert "Cache DNS lookups when resolving safebrowsing or parental servers, also cache replacement hostnames as well."
This reverts commit a5d1053520.

This cache had unintended side effects.
2018-11-02 12:15:30 +03:00
Andrey Meshkov 73e20d1dd0 Fix rule text in the Reason 2018-10-30 17:37:11 +03:00
Andrey Meshkov 54bdacdde2 Fix review comments: NextFilterId collisions 2018-10-30 17:16:20 +03:00
Andrey Meshkov 591065aa3a Added filterId to the querylog
Updated the openapi.yaml accordingly
Some minor refactoring/renaming
Fix other review comments
2018-10-30 12:24:59 +03:00
Andrey Meshkov 1e1ce606c5 gofmt instead of goland's format 2018-10-29 16:29:30 +03:00
Andrey Meshkov abb51ddb8a Add ErrAlreadyExists 2018-10-29 16:17:18 +03:00
Andrey Meshkov 2b2a797cf7 Moved hosts-syntax matching to DnsFilter 2018-10-29 15:46:58 +03:00
A.J. Ruckman b3840b5790 minor tweaks 2018-10-22 22:51:51 +03:00
Eugene Bujak 3e2a3afc52 Rename from 'Adguard DNS' to 'AdGuard Home'. 2018-10-15 16:02:19 +03:00
Eugene Bujak a5d1053520 Cache DNS lookups when resolving safebrowsing or parental servers, also cache replacement hostnames as well. 2018-10-10 19:10:38 +03:00
Eugene Bujak dc1042c3e9 Querylog -- Omit empty fields when writing json 2018-10-07 02:21:47 +03:00
Eugene Bujak 3a7a80f15f coredns plugin -- fix SHOULD NOT HAPPEN spam when incoming request is for root servers 2018-10-05 07:36:03 +03:00
Eugene Bujak 1cc1e3749d dnsfilter -- lazily initialize safebrowsing and parental lookup cache 2018-10-04 13:38:52 +03:00
Eugene Bujak cb97a254a5 dnsfilter -- avoid using regexps when simple suffix match is enough.
This covers 96.98% of all adguard dns rules.
2018-10-04 13:19:43 +03:00
Eugene Bujak 3aac7e7bc9 Add a test to demonstrate huge memory usage due from having too many regexps 2018-10-04 02:06:23 +03:00
Eugene Bujak c2aa39efe5 Merge pull request #23 in DNS/adguard-dns from gometalinter to master
* commit '076c9de68e73bbddc63cf6f7212818c91f3e5c08':
  Fix many lint warnings found by gometalinter
2018-09-17 11:26:17 +03:00
Eugene Bujak dcbe3dd405 dnsfilter -- compare full hashes when parsing parental lookup result.
Closes #337.
2018-09-17 01:42:01 +03:00
Eugene Bujak 076c9de68e Fix many lint warnings found by gometalinter 2018-09-14 18:40:05 +03:00
Eugene Bujak d49e3769a1 dnsfilter -- do not check lookup hosts against themselves to avoid recursion 2018-09-10 20:43:22 +03:00
Eugene Bujak 6fc50cd743 dnsfilter -- small code cleanup 2018-09-07 16:10:43 +03:00
Eugene Bujak c572c7b0e9 dnsfilter metrics -- parental cache hits were counted as safebrowsing cache hits 2018-09-07 15:46:38 +03:00
Eugene Bujak 1102963fa0 dnsfilter -- Update tests to check for expected filter/nofilter reason as well. 2018-09-06 02:06:40 +03:00
Eugene Bujak ed4077a969 Initial commit 2018-08-30 17:25:33 +03:00