Fast and lightweight DNS proxy as ad-blocker for local network with many features
Features:
upstreams.init.strategy
(Thanks @ThinkChaos)random
(#1221) (Thanks @DerRockWolf)Misc
Bugfix
FatalOnError
override log.Silence
(Thanks @ThinkChaos)upstreams.init.strategy
(@ThinkChaos)random
(#1221) (@DerRockWolf)blocky_error_total
(#1270) (@ThinkChaos)hostsFile
to use "sources" (@ThinkChaos)typeName
to "random" when appropriate (@ThinkChaos)FatalOnError
override log.Silence
(@ThinkChaos)Dialer.Timeout
with a context
deadline (@ThinkChaos)TLSVersion
type (@ThinkChaos)upstreams.timeout
is always valid (@ThinkChaos)dohUserAgent
to upstreams.userAgent
(@ThinkChaos)GetConfig
and its last uses (@ThinkChaos)StartStrategyType
to InitStrategy
(@ThinkChaos)Bootstrap
implement Resolver
(@ThinkChaos)DeferCleanup
into helper functions (@ThinkChaos)TmpFile.Error
to centralize error checks (@ThinkChaos)MockUDPUpstreamServer.WithDelay
where possible (@ThinkChaos)const timeout
to simplify race avoidance (@ThinkChaos)LogPrivacy
global instead of GetConfig
(@ThinkChaos)Upstreams
in UpstreamGroup
to make values accessible (@ThinkChaos)SingleInflight
(@ThinkChaos)config
global (@ThinkChaos)TmpFolder.ReadDir
and partially revert querylog test (@ThinkChaos)config/migration
to dot-import
allow-list (@ThinkChaos)nolint
(@ThinkChaos)Should(Not(x))
-> ShouldNot(x)
(@ThinkChaos)ShouldNot(HaveOccurred())
-> Should(Succeed())
(@ThinkChaos)ShouldNot(Succeed())
-> Should(HaveOccurred())
(@ThinkChaos)ContainElements
where possible (@ThinkChaos)Features:
strict
(#1093) (thanks @DerRockWolf)Misc
upstreams
(thanks @ThinkChaos)Bugfix
strict
(#1093) (@DerRockWolf)startStrategy
instead of deprecated failStartOnListError
(@ThinkChaos)upstreams
(@ThinkChaos)Full Changelog: https://github.com/0xERR0R/blocky/compare/v0.21...v0.22
Features:
Misc
Bugfix
connectIPVersion
not being respected for upstream connections (@ThinkChaos)startVerifyUpstream
not disabling all start checks (@ThinkChaos)startVerifyUpstream
tests (@0xERR0R)Features:
Misc
Bugfix
Features:
Misc
Features:
Bugfixes
Misc
Features:
Bugfixes
Misc
a90fb5d Extract client name from the URL (DoH and DoT) (#317) aa5457d Added download parameters bd1886d Allow to define different client names for the same group (#251) (#337) 487fe91 Bump github.com/onsi/ginkgo from 1.16.4 to 1.16.5 (#316) 6cf0c7b Bump github.com/onsi/gomega from 1.16.0 to 1.17.0 (#332) f42a7e6 Bump github.com/swaggo/swag from 1.7.1 to 1.7.3 e2b841b Bump gorm.io/driver/mysql from 1.1.2 to 1.1.3 (#323) 147c4e3 Bump gorm.io/driver/sqlite from 1.1.5 to 1.1.6 (#315) c344018 Bump gorm.io/driver/sqlite from 1.1.6 to 1.2.3 (#326) cabd2cf Bump gorm.io/gorm from 1.21.15 to 1.21.16 (#314) 6471a0a Bump gorm.io/gorm from 1.21.16 to 1.22.0 (#322) bb5bdef Bump gorm.io/gorm from 1.22.0 to 1.22.1 (#325) bf06775 Bump gorm.io/gorm from 1.22.1 to 1.22.2 (#327) 3adad4a Configurable caching for negative results (NXDOMAIN) (#287) (#330) 40e749a DoH endpoints should also accept trailing slash c22292e DoT (DNS-over-TLS) server (#303) e882fa0 Fallback when using mysql or file as query log (#318) (#336) c2fb389 Improve caching of prefetched domains (#290) 9b95969 Improved configuration output (duration format, etc.) 9b6dc66 Ipv6 parsing error in upstream definition (#285) 2f79086 Make retry for list download configurable (#308) (#338) e42c495 Moved golangci-lint to the new job 98cf484 Option to disable the query log (#333) f823db1 Refactoring default parameters in configuration 598849e added missing field in query log (#291) fe79b98 added test e5b44f4 application startup should fail if initial download of a single list failed (#310) (#313) db6d5cf changed command order c5c3501 changed order in client names resolving f0a94a0 chore(docker): Update alpine version 57036aa fixed golangci-lint issues 2fdaf47 go mod tidy 2aed746 introduced "failStartOnListError" parameter (#310) cd76796 introduced go-multierror to handle multiple errors
Features:
Bugfixes
Misc
29c0352 #235: customDNS resolver should return NOERROR instead of NXDOMAIN for existing domain mapping 9d33bcd Allow configuration of block time 461a903 Bump github.com/onsi/gomega from 1.14.0 to 1.15.0 (#240) 6e2dbe4 Bump github.com/onsi/gomega from 1.15.0 to 1.16.0 (#249) 26f42e9 Bump gorm.io/driver/sqlite from 1.1.4 to 1.1.5 6f8b8c1 Bump gorm.io/gorm from 1.21.14 to 1.21.15 91b975b Change configuration format for duration (#263) ae9b12f Configurable upstream lookup timeout (#256) d347b20 Docs change with udp and tcp deprecation (#243) c866b71 Fix go lint issues 925c6f9 Make list download timeout configurable (#254) 97a4a2e Merge branch 'development' 6c7cdf2 Merge branch 'development' 6adbbbd New Grafana Dashboard for database queries (#265) af3a950 New Grafana Dashboard for database queries (#265) 43bd568 Remove stats resolver (#266) 48a3802 Request duration metric is not populated if request resolution was faulty (#257) dca8262 Storing the query log in the database (#258) e2ea745 Update Dockerfile 08991ec Update configuration.md (#241) 9be2d4a added "fmt" target 010275b added "ko-fi" badge 4a554e2 added golangci-lint installation ea3b5de added test cf28ba9 added type information 850baf0 bootstrapDNS not used for upstream DNS resolution (#242) (#246) 26efda2 changed package name eafecf0 fixed golint issue 3d7e185 fixed table layout 579ed11 go mod tidy e37c3ae go mod tidy 02c4a05 go mod tidy 8a2a3fb inline lists definition (#207) 6373554 moving model types to the separate package 6a3baa5 obfuscate log output for user sensitive data to increase privacy (#225) 138172c reduce the configuration output for inline defined lists ee8f041 refactoring: generate enums e7ddab7 regex support for matching (#12) e59977c removed deprecated linters d318e2c renamed IPv6Checker to IPV6DisablingResolver 807480d slightly modified version of Dimitri's dasboard 41b28ad update to GO 1.17 1f639e3 update to GO 1.17 ab5be70 use fix version of go-enum 9195129 use full-qualified name as module e6ca896 write database entries async in bulk
Features:
Bugfixes
Misc
dd69a3e #202: WhitelistOnly Fix for multiple entries (#199) d8903bc #203: Added version to web interface. (#195) 301c8e4 #236: Enable wire format compression to support Android 9 DoH 9016fdb Bump github.com/miekg/dns from 1.1.41 to 1.1.42 (#208) e3ca34a Bump github.com/miekg/dns from 1.1.42 to 1.1.43 (#220) 1d511a3 Bump github.com/onsi/ginkgo from 1.16.1 to 1.16.2 (#201) 329e0eb Bump github.com/onsi/ginkgo from 1.16.2 to 1.16.4 (#217) 2abcf42 Bump github.com/onsi/gomega from 1.11.0 to 1.12.0 (#204) a63d937 Bump github.com/onsi/gomega from 1.12.0 to 1.13.0 (#214) 2a4af72 Bump github.com/onsi/gomega from 1.13.0 to 1.14.0 (#230) c3bf99b Bump github.com/prometheus/client_golang from 1.10.0 to 1.11.0 (#218) b8aae26 Bump github.com/spf13/cobra from 1.1.3 to 1.2.0 (#227) fdbb87a Bump github.com/spf13/cobra from 1.2.0 to 1.2.1 (#229) fb26cb7 Fix "misuse of unbuffered os.Signal channel as argument to signal.Notify (govet)" (#215) 3770dd9 Make prefetch fully configurable (#198) 30ce749 Make the number of cached domains configurable (#211) 447821f Unable to set IP for http/https port (#221) (#226) facdc89 Update configuration.md (#219) 6a4537b Update installation doc with change of depreacted externalResolvers (#224) 59ec29b fix lint warning 93d3c92 fixed golangci-lint warnings a896042 go mod tidy 66570fd note how to listen on a specific IP (#197) 114171a set the truncated header when sending large responses via UDP and enable compression #205
Features:
tini
to docker image (#180) -> thanks @onedr0pBugfixes
Misc
314922a #111: allow the ability to enable/disable blocking by group b454a17 #162: Segmentation fault on TCP request with UDP fallback 46cd15b #163: Critical information missing in log entry for DNS error c0da326 #164: Changed resolver order (Custom DNS before conditional configuration) 6f53846 #165: Block additional DNS record types 1971862 #176: Use correct Base64 decoding to make DoH really work 1ea6057 #182 - added config option for logTimestamp (#184) 22e59f8 #182: added documentation of logTimestamp configuration property db64fc3 #182: disabled linting of config structure 34eaf34 #188: Add additional binaries as release artifacts 209024e #81: Configuration of different upstream DNS servers for different clients (#193) 9ea8419 Add prefetch hit metrics (#190) 000beba Add support of disable ipv6(AAAA) query (#171) a31fc8d Blocking with conditional upstream (#174) d5b0e0a Bump github.com/go-chi/cors from 1.1.1 to 1.2.0 (#169) a75ecf9 Bump github.com/miekg/dns from 1.1.40 to 1.1.41 (#167) 81e7b0f Bump github.com/onsi/ginkgo from 1.15.1 to 1.15.2 (#166) fa08842 Bump github.com/onsi/ginkgo from 1.15.2 to 1.16.0 (#170) 7af0c57 Bump github.com/onsi/ginkgo from 1.16.0 to 1.16.1 (#172) c06f373 Bump github.com/prometheus/client_golang from 1.9.0 to 1.10.0 (#168) af4d2cd Changed block type description 33eb062 Make cache for all query types (#186) 292e561 Remove badge until dependabot/dependabot-core#1912 is fixed. 86b7cdb add tini to Docker image (#180) b16084a added descriptions and prefetch hit ratio panel a3d0bcc added disableIPv6 property 88fdab7 chore(docs): Update link to kubernetes chart (#181) 30bde16 fix panic with empty query (#175) 1a9569a go mod tidy 7e092e7 go mod tidy c59c52d removed deprecated linters 6075c5f replaced deprecated function ace36c8 switched to golangci-lint GitHub Action