Blocky Versions Save

Fast and lightweight DNS proxy as ad-blocker for local network with many features

v0.23

4 months ago

Features:

  • add support for wildcard lists using a custom Trie (#1233) (Thanks @ThinkChaos)
  • querylog: add flushInterval parameter
  • race UDP and TCP when connecting upstream (Thanks @ThinkChaos)
  • API-first approach for REST interface (#1129)
  • add API endpoint to flush the DNS Cache (#1178)
  • add upstreams.init.strategy (Thanks @ThinkChaos)
  • add timeout to bootstrap (#1158)
  • add upstream strategy random (#1221) (Thanks @DerRockWolf)
  • reduce DNS response cache memory consumption (#1196)
  • EDNS: Client Subnet (#1007) (Thanks @kwitsch)

Misc

  • Updated dependencies and documentation

Bugfix

  • make FatalOnError override log.Silence (Thanks @ThinkChaos)
  • ANSI color codes being printed on Windows (#1225) (Thanks @kwitsch)
  • conditional resolver panics on response without question (#1148)
  • don't cache DNS responses with CD flag
  • don't cache EDNS pseudo records (#1150)
  • don't convert regex from punycode to ASCII (#1126) (#1131)
  • log.privacy option no longer hides domain names being resolved (#1255)
  • return error code on server starup failure (#1165)
  • truncated responses should not be cached (#1149)
  • use different TTL of multiple records in answer
  • rewrite: support the case where upstream doesn't echo the question (Thanks @ThinkChaos)

Changelog

  • 9a77dcdccc6ef5051776d76d4ad4e9707a8acfab: BlockingConfig -> Blocking (@kwitsch)
  • 11543356b6b303ffa18613992cbf48aefc269f8f: Bugfix in ECS forward (#1290) (@kwitsch)
  • fb8c4192abf153281d40d4996cc88d43e176e7ab: Bugfix/GitHub workflows (#1234) (@kwitsch)
  • dc66eff8e9409e9e661db1bdc69fc91ddcf2fcf3: Bugfix/readme (#1232) (@kwitsch)
  • e30e852c860effcac17e5e39554d600287ce0bc3: ClientLookupConfig -> ClientLookup (@kwitsch)
  • 00d43412710cafa52430f730c7c437c23210684d: ConditionalUpstreamConfig -> ConditionalUpstream (@kwitsch)
  • 26d5f6215ff238c86e39f3a7362bd90eb447e7de: CustomDNSConfig -> CustomDNS (@kwitsch)
  • 6fca40ca7f6ed86c23f1f5af0b6ed40d43db0d37: Dockerfile streamline (#1185) (@kwitsch)
  • d37d18348f7823b7cd272080a5dc516a5cea08ce: EDNS: Client Subnet (#1007) (@kwitsch)
  • acfc2915474fadbb0893f43173ef58b9f89b87c5: Feature/devcontainer (#1179) (@kwitsch)
  • 76155849443aa443ed263888833546ee8ae137a3: Feature/ginkgolinter (#1235) (@kwitsch)
  • 1a200c77e3b45994a64a87370cc2c563ae257cb4: Fix/opencontainer labels (#1192) (@kwitsch)
  • fda2dbe9df62bcbcc9a07c3754de915a51b844b7: Refactoring Redis (#1271) (@kwitsch)
  • 976d6198f1cb0beec28885fb305fe57e43d6a9a9: Refactoring server.go (#1277) (@kwitsch)
  • 03131c443cb935f51428e223318491d1b8abdb56: Refactoring/config struct names (#1315) (@kwitsch)
  • 3378316982faedfa43790b907f2bcbcb6a86f80f: Refactoring: FileDownloader (#1281) (@kwitsch)
  • 6c000090b16fb698d56e0775cfa4f3c67e450862: Unit test refactoring & devcontainer enhancement(#1245) (@kwitsch)
  • 72352a968a87402336e0cd8b648806920a1188a0: UpstreamsConfig -> Upstreams (@kwitsch)
  • d8d7fa52d6551b0c13e199ede4d8056a559c801e: build(deps): bump actions/checkout from 3 to 4 (#1127) (@dependabot[bot])
  • c703f8f973b835c0eb4cf8a611375a20c9614766: build(deps): bump actions/download-artifact from 3 to 4 (#1305) (@dependabot[bot])
  • 3e8b7af189083c2fc64e5c36d881d13a197dd6aa: build(deps): bump actions/setup-go from 4 to 5 (#1294) (@dependabot[bot])
  • 79d3afa57a880440691455043afb70e2c9d5608c: build(deps): bump actions/setup-python from 4 to 5 (#1295) (@dependabot[bot])
  • 5490fc63639bc150e8989310a44bcdc2f50f979b: build(deps): bump actions/stale from 8 to 9 (#1296) (@dependabot[bot])
  • 343d38cd3b7858b2647b2b80c6f41b204ba62ad3: build(deps): bump actions/upload-artifact from 3 to 4 (#1306) (@dependabot[bot])
  • c72a0e18f19a147a04d04471fccd7f2d2d3db167: build(deps): bump codecov/codecov-action from 3 to 4 (#1147) (@dependabot[bot])
  • e31d20c13214a4b2314b503c9ef83f9b666b3d90: build(deps): bump crazy-max/ghaction-docker-meta from 4 to 5 (#1142) (@dependabot[bot])
  • cb5f72f830222b084bd6d27e4a582bb9853e9675: build(deps): bump docker/build-push-action from 4 to 5 (#1140) (@dependabot[bot])
  • c212ab30d362e4f37d389319fc3896de27644c32: build(deps): bump docker/login-action from 2 to 3 (#1139) (@dependabot[bot])
  • e187aaa7fbd3ae2a7873844a14f24510921e8ebe: build(deps): bump docker/setup-buildx-action from 2 to 3 (#1143) (@dependabot[bot])
  • 4006b16263f30a31f24b22656db7c9d7db56376a: build(deps): bump docker/setup-qemu-action from 2 to 3 (#1141) (@dependabot[bot])
  • 825f1ddb37c096a252ac4e1b1a5b5c0bc34fe036: build(deps): bump github.com/DATA-DOG/go-sqlmock from 1.5.0 to 1.5.1 (#1297) (@dependabot[bot])
  • 4c65865c6c64461aede2446d9e6fdafcfc0d149a: build(deps): bump github.com/abice/go-enum from 0.5.10 to 0.6.0 (#1309) (@dependabot[bot])
  • 710efa357cf879199b6cb31823cc527825034f87: build(deps): bump github.com/abice/go-enum from 0.5.7 to 0.5.8 (@dependabot[bot])
  • 7f7161f4c1128a1219ee7625ab0747965219f1cd: build(deps): bump github.com/abice/go-enum from 0.5.8 to 0.5.10 (@dependabot[bot])
  • 9f4929117720fa8a725fd2d84f54760beec83a3f: build(deps): bump github.com/alicebob/miniredis/v2 from 2.30.5 to 2.31.0 (#1201) (@dependabot[bot])
  • 5fefca57323bb568e0d71b67f784904211e48892: build(deps): bump github.com/avast/retry-go/v4 from 4.5.0 to 4.5.1 (#1249) (@dependabot[bot])
  • 4e901094ecd51e5d77dcfc87f9252255760fe347: build(deps): bump github.com/containerd/containerd from 1.7.7 to 1.7.11 (#1310) (@dependabot[bot])
  • e4e46d7c306692832386778572f8d92200900600: build(deps): bump github.com/deepmap/oapi-codegen from 1.14.0 to 1.15.0 (@dependabot[bot])
  • 18be1e99e276dda60d326ed25f30255f297e7785: build(deps): bump github.com/deepmap/oapi-codegen from 1.15.0 to 1.16.2 (#1209) (@dependabot[bot])
  • 68eeebeed4bdf2c8b1911368d607f595cd0bdc8b: build(deps): bump github.com/docker/docker (#1216) (@dependabot[bot])
  • f9fa81d18dfbb23273020650126e393de0087b95: build(deps): bump github.com/docker/docker (@dependabot[bot])
  • c6304e9d7fa10796bcc5b23f1902e2ca2577f7ad: build(deps): bump github.com/go-chi/chi/v5 from 5.0.10 to 5.0.11 (#1314) (@dependabot[bot])
  • fd8ee7cf40b732429eb011c1175393712bcc5e86: build(deps): bump github.com/google/uuid from 1.3.1 to 1.4.0 (#1218) (@dependabot[bot])
  • abe9e5c46133455eefea620d04c545b91f3f2ca9: build(deps): bump github.com/google/uuid from 1.4.0 to 1.5.0 (#1300) (@dependabot[bot])
  • 9f532ce41ff138edfd0bcfa909ecaa66aa87ae37: build(deps): bump github.com/miekg/dns from 1.1.55 to 1.1.56 (@dependabot[bot])
  • f1a6fb0014f52fa52f040a94d4ebd0c8c92a467b: build(deps): bump github.com/miekg/dns from 1.1.56 to 1.1.57 (#1253) (@dependabot[bot])
  • 7edb856e679788472a37af24034b6856749f5ede: build(deps): bump github.com/oapi-codegen/runtime from 1.0.0 to 1.1.0 (#1250) (@dependabot[bot])
  • f512e11cbf0e1d4d2afb11d76183fc70ecb05c52: build(deps): bump github.com/onsi/ginkgo/v2 from 2.12.0 to 2.12.1 (@dependabot[bot])
  • 02569b06d9d81cfd7f2c6422344b0607bd749c68: build(deps): bump github.com/onsi/ginkgo/v2 from 2.12.1 to 2.13.0 (#1195) (@dependabot[bot])
  • 6448be6667466daaf07e4fdf6bfd25faee51b8d3: build(deps): bump github.com/onsi/ginkgo/v2 from 2.13.0 to 2.13.1 (#1237) (@dependabot[bot])
  • 77ef228efe96964c582037a4186bc393b7dd6760: build(deps): bump github.com/onsi/ginkgo/v2 from 2.13.1 to 2.13.2 (#1280) (@dependabot[bot])
  • d76740ea51a79bb7417c868475268f254dc200ec: build(deps): bump github.com/onsi/gomega from 1.27.10 to 1.28.0 (@dependabot[bot])
  • 589e998e5c62b49db7fae07e059ff49d4892314c: build(deps): bump github.com/onsi/gomega from 1.28.0 to 1.28.1 (#1207) (@dependabot[bot])
  • 5ba1cc27e54d0c2d09247d6390d34b33bee87728: build(deps): bump github.com/onsi/gomega from 1.28.1 to 1.29.0 (#1213) (@dependabot[bot])
  • ad27adcdeb9178170e998e5927bea5e66e808cdd: build(deps): bump github.com/onsi/gomega from 1.29.0 to 1.30.0 (#1228) (@dependabot[bot])
  • d923c8c36a40bef4a86c97e8241c4ce51d56dbd2: build(deps): bump github.com/prometheus/client_golang (@dependabot[bot])
  • 23ce44d457eb54b4553027a3a75fdf104c63f35b: build(deps): bump github.com/spf13/cobra from 1.7.0 to 1.8.0 (#1223) (@dependabot[bot])
  • 51bb54b5959619955b84c5d49484a41caf294501: build(deps): bump github.com/swaggo/swag from 1.16.1 to 1.16.2 (#1123) (@dependabot[bot])
  • 3dc0ca18852a4c9d29b5a6ca9c900ad983986019: build(deps): bump github.com/testcontainers/testcontainers-go (@dependabot[bot])
  • e63ad3880cb27d38e0e70c3e758d31fb71a1ab8c: build(deps): bump github.com/testcontainers/testcontainers-go (@dependabot[bot])
  • 7f38a3b617670c153f3d108d58b8519a1212207f: build(deps): bump github.com/testcontainers/testcontainers-go/modules/mariadb (#1181) (@dependabot[bot])
  • 4c62b2ddcfc4ce0031c78551e8fac23ed3026ca1: build(deps): bump github.com/testcontainers/testcontainers-go/modules/mariadb (#1219) (@dependabot[bot])
  • 1292a200095c3b14b3297e7df3113fd396a083cc: build(deps): bump github.com/testcontainers/testcontainers-go/modules/mariadb (@dependabot[bot])
  • ed3a3dee0fa66ffcf47b58b76bdad60770826128: build(deps): bump github.com/testcontainers/testcontainers-go/modules/postgres (#1182) (@dependabot[bot])
  • 1aec7d633e6d8d5048bc37c4e2a677eaa5283c11: build(deps): bump github.com/testcontainers/testcontainers-go/modules/postgres (#1214) (@dependabot[bot])
  • b87c54530056366f9d996c3ed702b57058a4f0cd: build(deps): bump github.com/testcontainers/testcontainers-go/modules/postgres (@dependabot[bot])
  • 10b678b0fdfe49168f5e5a1bcf2c25334c0c2f56: build(deps): bump github.com/testcontainers/testcontainers-go/modules/redis (#1183) (@dependabot[bot])
  • b2775069b342173179a36b14b39dfdd3c34e16f3: build(deps): bump github.com/testcontainers/testcontainers-go/modules/redis (#1215) (@dependabot[bot])
  • 69f6ae4eadcdb615ba69d10187de9df6f442168e: build(deps): bump github.com/testcontainers/testcontainers-go/modules/redis (@dependabot[bot])
  • c814667b1410411d8233240a201d4889555506a3: build(deps): bump github/codeql-action from 2 to 3 (#1303) (@dependabot[bot])
  • 4217e933e0203c5edb40d56e05ca8dd9f81aae1b: build(deps): bump golang.org/x/crypto from 0.16.0 to 0.17.0 (#1308) (@dependabot[bot])
  • ccabb5ad872b91858b4449a11dc702a994354a5d: build(deps): bump golang.org/x/net from 0.15.0 to 0.16.0 (#1186) (@dependabot[bot])
  • 8dec31813038be1915ec8523fe8076d9ddebdaa5: build(deps): bump golang.org/x/net from 0.16.0 to 0.17.0 (#1197) (@dependabot[bot])
  • 5e6f6c4e6a9514335ed2b5ce24ffee72cd222168: build(deps): bump golang.org/x/net from 0.17.0 to 0.18.0 (#1230) (@dependabot[bot])
  • 09552f9318427c1a5f2ba2793a5aa9c60af207e3: build(deps): bump golang.org/x/net from 0.18.0 to 0.19.0 (#1278) (@dependabot[bot])
  • c09eb9e306e91c8556aef352989ad578d1c3fc78: build(deps): bump golang.org/x/tools from 0.12.0 to 0.13.0 (@dependabot[bot])
  • 0e1bd0cf1757928b20319a507c4f11b2c0c936b7: build(deps): bump golang.org/x/tools from 0.13.0 to 0.14.0 (#1193) (@dependabot[bot])
  • 42d6f21ceb57ffeef000ec79b9fe630bcb26e7f0: build(deps): bump golang.org/x/tools from 0.14.0 to 0.15.0 (#1229) (@dependabot[bot])
  • b1cd2557994a4c3b7d77ed7df1a42424fd9adfca: build(deps): bump golang.org/x/tools from 0.15.0 to 0.16.0 (#1279) (@dependabot[bot])
  • d5a98b1306efb6b5eb4738fa63dad292caeda78e: build(deps): bump golang.org/x/tools from 0.16.0 to 0.16.1 (#1299) (@dependabot[bot])
  • c591fb88f0b9bfff749f66e49da2d3a81fc563c5: build(deps): bump google.golang.org/grpc from 1.57.0 to 1.57.1 (#1211) (@dependabot[bot])
  • f5ec92f43879c3fd469f4ff973a020879d03b9cb: build(deps): bump goreleaser/goreleaser-action from 4 to 5 (#1136) (@dependabot[bot])
  • de13ffc6aecf7dffcf7a56f879bd5df78b30ae48: build(deps): bump gorm.io/driver/mysql from 1.5.0 to 1.5.2 (#1200) (@dependabot[bot])
  • 2fcdf695ede825b1107eccebae69ca71f28958af: build(deps): bump gorm.io/driver/postgres from 1.5.2 to 1.5.3 (#1199) (@dependabot[bot])
  • 58bfe5acc2217686a1db0b92c53b297b1ac10d98: build(deps): bump gorm.io/driver/postgres from 1.5.3 to 1.5.4 (#1212) (@dependabot[bot])
  • 210900b25dac042c7eb0bef6a9ad862d04d8989c: build(deps): bump gorm.io/driver/sqlite from 1.5.3 to 1.5.4 (#1194) (@dependabot[bot])
  • 733a54d7377642a313f5bfb8d0098c0e2fdb389a: build(deps): bump gorm.io/gorm from 1.25.4 to 1.25.5 (#1198) (@dependabot[bot])
  • 7782818e8d49cc71d1e605608a049b5da75d8815: chore(build): change deprecated "rm-dist" flag to "clean" (#1120) (@0xERR0R)
  • 45a933565e4d33ed5ab4f8092842acd3ee98e8de: chore(build): revert codecov-action update (@0xERR0R)
  • 1dcbf9023249f104a915bc533975ebd416aa7276: chore(build): update Golang to 1.21 (#1122) (@0xERR0R)
  • 7645ed35a358b1d66a2b664bf6776f3181788eae: chore(build): update golangci-lint to 1.54.2 (#1121) (@0xERR0R)
  • 497bd0d0fd1a2afb58cfd36a3c37c8e5aca9a467: chore(refactor): refactor cache implementation (#1174) (@0xERR0R)
  • 81529996cea3573051662ccf0fe68ae163a38ebf: chore(test): add retry on network deletion (#1144) (@0xERR0R)
  • 19865bba5570222388925f7a18133523f1dad3aa: chore(test): change container wait strategy (@0xERR0R)
  • 720e6550bef13deb5370745648ef34cd873f2c91: chore(test): fix flaky test (@0xERR0R)
  • 500c18708222eb037829fe9bd30b6e1a2fcdeb25: chore(test): fix race conditions (@0xERR0R)
  • a9ec322c8d73989e2a7f26f89ede8b339dd6b409: chore(test): set timeout and flake-attempts for e2e tests (@0xERR0R)
  • bcff170a94ddb57ea2e4b55a460d4d22a640bab2: chore(test): use testcontainers modules (#1164) (@0xERR0R)
  • aa9ae0bd6308cddd614a09210cf449e0cd2f20d3: chore(text): fix ipv6 representation (@0xERR0R)
  • 8ece708fe9d34b761c64ad70ad5e58d297b2cdcb: devcontainer & unit test refactoring (#1220) (@kwitsch)
  • b498bc509427ca6fc25a9bc57f87f7beedda2d50: feat(lists): add support for wildcard lists using a custom Trie (#1233) (@ThinkChaos)
  • b1d014017b01f738679e0f56792fc5d00b6e72f9: feat(querylog): add flushInterval parameter (@0xERR0R)
  • df8c373ef123b2d4e00589df31944b8998b2dba7: feat(resolver): race UDP and TCP when connecting upstream (@ThinkChaos)
  • 72d747c16f6d181d3d5bc27d31d42f40551c9d20: feat: API-first approach for REST interface (#1129) (@0xERR0R)
  • d77f0ed54f1d43d9a5cbb8a6bfd3ed199090353a: feat: add API endpoint to flush the DNS Cache (#1178) (@0xERR0R)
  • 7a3c054b4367d81653b70d3f33e7dfb967fb04ed: feat: add upstreams.init.strategy (@ThinkChaos)
  • 6f60bea5c253c5ba3bc9ce9426f5e0b9cfe9ceee: feat: add timeout to bootstrap (#1158) (@0xERR0R)
  • 94663eeaeb8365e5f1feccd60a6bf6226877e547: feat: add upstream strategy random (#1221) (@DerRockWolf)
  • 73bc60cb2223ba55fdfa49bb060fd375c9229c3a: feat: reduce DNS response cache memory consumption (#1196) (@0xERR0R)
  • 6dd294b4a7569f57828afffb485290e2865794c9: fix(ci): limit docs job concurrency to one (@ThinkChaos)
  • 7feaba48c77b9192723dab321e64deb4871ebd60: fix(docs): clarify blocky_error_total (#1270) (@ThinkChaos)
  • 6775410909c91a26adbdcc4316caed33c7b92cf6: fix(docs): fix documentation link in README.md (#1133) (#1134) (@0xERR0R)
  • a7f2ca208b5706ba1aab3d3f7ad6827932dfb3fe: fix(docs): make custom DNS matching recursively more explicit (@ThinkChaos)
  • b2fa627a4642d2d3267a8be23c12de946230be84: fix(docs): remove note that slipped in (@ThinkChaos)
  • 2db0bd9c6b0ab17d84f27a62e962ea6bc75b79ff: fix(docs): update hostsFile to use "sources" (@ThinkChaos)
  • e4ebc16ccc08cb35f37b631aa8be32c5a3eccdf1: fix(parallel_best): set typeName to "random" when appropriate (@ThinkChaos)
  • dece894bd6d62205f2ec69379850e2a526667c8d: fix(rewrite): support the case where upstream doesn't echo the question (@ThinkChaos)
  • 08a3df6e644bc8e66726688e23daf7e1efcb8b0a: fix(tests): don't make following requests wait on the first (@ThinkChaos)
  • d52c598546918827774d64203e863f6213f833eb: fix(tests): properly silence log output (#1259) (@ThinkChaos)
  • 4e89b441858e5ce458d0a7338fa9b8dc9bf34e86: fix(util): make FatalOnError override log.Silence (@ThinkChaos)
  • d87e6b4157cdc723893d3984b78f9a91e59d2c08: fix: ANSI color codes being printed on Windows (#1225) (@kwitsch)
  • 47eb8be77f15a7cbff2b2f1892f0cc70fc04c4a7: fix: conditional resolver panics on response without question (#1148) (@0xERR0R)
  • 431b9be3e523b74de63fccfd2eb4aba1690f76e8: fix: don't cache DNS responses with CD flag (@0xERR0R)
  • 9f15228c097723676e9ed3897f257fbcb66f502a: fix: don't cache EDNS pseudo records (#1150) (@0xERR0R)
  • 245bb613df9b16499444153bb23c9a393a86ee27: fix: don't convert regex from punycode to ASCII (#1126) (#1131) (@0xERR0R)
  • 4a5a3956553b5b2da8d6e30ab56f1e7fe67d5b94: fix: log.privacy option no longer hides domain names being resolved (#1255) (@0xERR0R)
  • 65ff6847ad83c02376771cd1e70d88b9018ef192: fix: return error code on server starup failure (#1165) (@0xERR0R)
  • d5be5884d9d3bba349a8b0bbc582239a5fb23d8a: fix: truncated responses should not be cached (#1149) (@0xERR0R)
  • f98859325e0d40b188fcca97f46c5bc3fa3fd7b5: fix: use different TTL of multiple records in answer (@0xERR0R)
  • 15bd383460654c1e641deff26e3d89d7d0dd2754: ginkgolinter: enable all checks and fix findings (#1274) (@nunnatsa)
  • f0a96f9cd1611745bf520ffc493d9095f1aa7d4c: opencontainer labels enhancement (#1191) (@kwitsch)
  • 29a5681b3c79f19d609b3b49a1ceae0afaa4c256: refactor(bootstap): prepare for resolver package split (@ThinkChaos)
  • 0f69630563389176951dfc7223b1be6400ad07a5: refactor(bootstrap): replace Dialer.Timeout with a context deadline (@ThinkChaos)
  • 270dc178dc2f279ea4481117c3ae8a0f4ada5ef9: refactor(config): add TLSVersion type (@ThinkChaos)
  • ef29cdc45eff15dc97ea471f12e40d6f664d5344: refactor(config): ensure upstreams.timeout is always valid (@ThinkChaos)
  • 9760735f3a4b186c8520b38844775402016699f4: refactor(config): move dohUserAgent to upstreams.userAgent (@ThinkChaos)
  • e4be0c0c869be70208907dc6b36dff43a08c46f1: refactor(config): remove GetConfig and its last uses (@ThinkChaos)
  • a6654dcd5770a32d933fa6d419fea13aea90ebac: refactor(config): rename StartStrategyType to InitStrategy (@ThinkChaos)
  • 659076dd7be4000c9b58aef8ae23e3ef94942ea7: refactor(resolvers): make Bootstrap implement Resolver (@ThinkChaos)
  • 891d0fba743484c533dcb2b57295b6870476a718: refactor(tests): move DeferCleanup into helper functions (@ThinkChaos)
  • 8c7b89cbb36df05c0aee362ea03541862fdda299: refactor(tests): remove TmpFile.Error to centralize error checks (@ThinkChaos)
  • adb970af100d23ed7bd27bc777ea1facc7b91bfd: refactor(tests): use MockUDPUpstreamServer.WithDelay where possible (@ThinkChaos)
  • 8ad83d0568e013664404c72ea6e5c7428d34fda3: refactor(tests): use a const timeout to simplify race avoidance (@ThinkChaos)
  • 02cf4903f388e0b0488651902511703cee5e567b: refactor(util): use LogPrivacy global instead of GetConfig (@ThinkChaos)
  • b386e22ebeac9f0ca564f0a3eddc0aa829cd0c59: refactor: embed Upstreams in UpstreamGroup to make values accessible (@ThinkChaos)
  • eae99ec5505ad1633db6aff7467fd40a10cfa929: refactor: make use of contexts in more places (@ThinkChaos)
  • 33ea93301588bce2c0eaa726fbb88ec9d252b5ed: refactor: pass context for goroutine shutdown (#1187) (@0xERR0R)
  • 2c71f91aca5b796bb869620f5ce134c19d56a6a9: refactor: remove deprecated and no-op SingleInflight (@ThinkChaos)
  • 603d374405e2466b61690bcb215d89da005bde22: refactor: remove no longer needed TLS handshake timeout (@ThinkChaos)
  • 7d93ffb80c6eec7d2265e71d00cbac45c59c553c: refactor: remove the config global (@ThinkChaos)
  • 3f14e71eeb42982a78f55304a417c38e10057e59: remove go version in devcontainer file (#1184) (@kwitsch)
  • ac54110886ec464a90f8a51420d572389ae04722: squash: remove Nix flake (@ThinkChaos)
  • c5cc1120a9a2ce5043ca5650c9e3acce615ef1e7: squash: remove TmpFolder.ReadDir and partially revert querylog test (@ThinkChaos)
  • 23359d14715e69731e3d00cb28fc1efa6a8da9a6: style(config): add config/migration to dot-import allow-list (@ThinkChaos)
  • fa2d8149ba19537a5518b8024b2e9eed23a07730: style(config): remove unused nolint (@ThinkChaos)
  • 321680250ade98e9023a38fe82c26a47819593ab: style(tests): Should(Not(x)) -> ShouldNot(x) (@ThinkChaos)
  • fe5c753eedf073421351eaf06d70eddc7fbf16db: style(tests): ShouldNot(HaveOccurred()) -> Should(Succeed()) (@ThinkChaos)
  • a3301749491d26ee30bece3a84237cc46b83fbb2: style(tests): ShouldNot(Succeed()) -> Should(HaveOccurred()) (@ThinkChaos)
  • f371857150992bbc86bf08b15f691db8e755040d: style(tests): use ContainElements where possible (@ThinkChaos)
  • 1a1891c8b63b390a58e890f734f095202df030cf: symbol name refactoring (#1263) (@kwitsch)

v0.22

8 months ago

Features:

  • expand supported special use domains RFCs (thanks @ThinkChaos)
  • add upstream strategy strict (#1093) (thanks @DerRockWolf)
  • support multiple hosts files (thanks @ThinkChaos)
  • support IDNA in lists (@ThinkChaos)

Misc

  • fixed several errors in the documentation
  • Updated dependencies and documentation
  • allow more configuration for upstreams (thanks @ThinkChaos)
  • Ci workflow improvements (thanks @kwitsch )

Bugfix

  • use correct resolver in "using response from resolver" debug log (#1082) (@DerRockWolf)
  • make domain validation in list parser more lenient (thanks @ThinkChaos)

Changelog

  • 8d48a21aea2d8957d1a7fbf3efc4d606513aab43: Add homebrew link to the installation docs (#995) (@log-to-code)
  • 015b565137f2a79ed4d0be7ba548e7ca6c2acb06: Add maxErrorsPerFile blocking configuration (#986) (@mandrav)
  • 2496c368e3ed95003064f1e515870dbc33b6cff5: GitHub Actions Update (#951) (@kwitsch)
  • 1d25cca4e540f68cc66dd9287ceb46ea9e548e65: Goreleaser fix (#1003) (@kwitsch)
  • f20480989c2f62408061bb98ca67591183c5d4f2: Update deprecated port specification in example config (#1042) (@73567876543783)
  • 6028a64aa9b1154b5cb9c65c3c2a8ead23fdd173: Update prometheus_grafana.md with correct grafana config (@aman207)
  • 30ead041762afa534f236208f3a90836948fa4a3: build(deps): bump github.com/abice/go-enum from 0.5.5 to 0.5.6 (#955) (@dependabot[bot])
  • 417a3538d854824aaf037928b1094c13ef853632: build(deps): bump github.com/abice/go-enum from 0.5.6 to 0.5.7 (@dependabot[bot])
  • ed0006498812cc820b2e98557e462a159f46b9ca: build(deps): bump github.com/alicebob/miniredis/v2 from 2.30.1 to 2.30.2 (@dependabot[bot])
  • 2ccc4144d1f00e4c4238e4483ab29e18d69cf1ee: build(deps): bump github.com/alicebob/miniredis/v2 from 2.30.2 to 2.30.3 (@dependabot[bot])
  • 7dacf6fdac0279c119fe6c6d31a6743cb7e9f6a4: build(deps): bump github.com/alicebob/miniredis/v2 from 2.30.3 to 2.30.4 (@dependabot[bot])
  • 5e49e7ab1015ecbc68dbce7a1f3b16952e95ce87: build(deps): bump github.com/alicebob/miniredis/v2 from 2.30.4 to 2.30.5 (#1104) (@dependabot[bot])
  • e4f467cead818a9572a15272a567a330987f075a: build(deps): bump github.com/avast/retry-go/v4 from 4.3.3 to 4.3.4 (@dependabot[bot])
  • 8957e405051af80022336c01ee4e54cb4eea2836: build(deps): bump github.com/avast/retry-go/v4 from 4.3.4 to 4.5.0 (@dependabot[bot])
  • 2a5552631cf4f8bc4b931770859a4110725d3ffa: build(deps): bump github.com/docker/distribution (@dependabot[bot])
  • 5fc02bb7fb7420a1a292eab07bc6faf8697c9a2c: build(deps): bump github.com/docker/docker (@dependabot[bot])
  • eb5f666e5a85d7528c3e47301375b192fb9a0901: build(deps): bump github.com/go-chi/chi/v5 from 5.0.8 to 5.0.10 (@dependabot[bot])
  • 420b4fd86b2d4dad9d4cb19d6e6c31089c3524ff: build(deps): bump github.com/google/uuid from 1.3.0 to 1.3.1 (#1112) (@dependabot[bot])
  • ed89f62f1bdd3b328561b75da68ef9f82940c912: build(deps): bump github.com/hashicorp/golang-lru from 0.5.4 to 1.0.2 (@dependabot[bot])
  • b856837ad9f6aca27c8bce70c8cfb67520cc72fa: build(deps): bump github.com/miekg/dns from 1.1.52 to 1.1.53 (#965) (@dependabot[bot])
  • b198560cdaa6b640f65e9a8e73b5203f46638ef9: build(deps): bump github.com/miekg/dns from 1.1.53 to 1.1.54 (@dependabot[bot])
  • fa73eddbd4be134be03a0d6687146ea1740e180c: build(deps): bump github.com/miekg/dns from 1.1.54 to 1.1.55 (@dependabot[bot])
  • 2dfef13a7997191d445ed17e44d20c3e4ccd79be: build(deps): bump github.com/mroth/weightedrand/v2 from 2.0.1 to 2.0.2 (@dependabot[bot])
  • 39208d860e0c1bd8f90f7782fe7125dbd94e5ce3: build(deps): bump github.com/mroth/weightedrand/v2 from 2.0.2 to 2.1.0 (@dependabot[bot])
  • 405f3f71fbdd6e3a3ccb378ba8c9010559237d09: build(deps): bump github.com/onsi/ginkgo/v2 from 2.11.0 to 2.12.0 (#1115) (@dependabot[bot])
  • 0bc39140788bd4a72aaf5db988dfd4e6d1fe231f: build(deps): bump github.com/onsi/ginkgo/v2 from 2.9.2 to 2.9.5 (@dependabot[bot])
  • 954ad5668a21b2cf895becdbb50bd4da4d2ee38d: build(deps): bump github.com/onsi/ginkgo/v2 from 2.9.5 to 2.11.0 (@dependabot[bot])
  • 4d01349d69c82c8dc648e5437894a456404a0b44: build(deps): bump github.com/onsi/gomega from 1.27.5 to 1.27.6 (#968) (@dependabot[bot])
  • 879a79c69da697175143d2013f61812d3615526f: build(deps): bump github.com/onsi/gomega from 1.27.6 to 1.27.7 (@dependabot[bot])
  • 173d31b482b220195d952b1b1ef928b7c44d1d6d: build(deps): bump github.com/onsi/gomega from 1.27.7 to 1.27.8 (@dependabot[bot])
  • d3fc1bc099d0992f37f9403f123c77a56b99121c: build(deps): bump github.com/onsi/gomega from 1.27.8 to 1.27.10 (@dependabot[bot])
  • 2b1786a42dbd09897ef8bc2a42d76c333922760b: build(deps): bump github.com/opencontainers/runc from 1.1.4 to 1.1.5 (#967) (@dependabot[bot])
  • 1b478d047a2601596794976a13573b20e6204480: build(deps): bump github.com/prometheus/client_golang (@dependabot[bot])
  • 6be1c6529f5bb712be22823212b07c1eaf6a1d14: build(deps): bump github.com/prometheus/client_golang (@dependabot[bot])
  • 2205aa7528aeaccf46e8f9c36fd46d7f86a1edf3: build(deps): bump github.com/prometheus/client_golang (@dependabot[bot])
  • 1a9f629a951d91aedfb00aa2a0e80306b75fedad: build(deps): bump github.com/sirupsen/logrus from 1.9.0 to 1.9.2 (@dependabot[bot])
  • 1766be03c7261bc1c90e458c0f77c957ea1b4755: build(deps): bump github.com/sirupsen/logrus from 1.9.2 to 1.9.3 (@dependabot[bot])
  • 7b13810246adccc54701934456631281f7f8cf9d: build(deps): bump github.com/spf13/cobra from 1.6.1 to 1.7.0 (@dependabot[bot])
  • c7a540b55bb21a6409203b77ad02daf3962f2c90: build(deps): bump github.com/stretchr/testify from 1.8.2 to 1.8.3 (@dependabot[bot])
  • a039c41226ec6de3e397d8adb2bc2bf7915d1581: build(deps): bump github.com/stretchr/testify from 1.8.3 to 1.8.4 (@dependabot[bot])
  • 2a2269683ffc004eaf4bfdec90baf8a5daf35a20: build(deps): bump github.com/swaggo/swag from 1.8.11 to 1.8.12 (#964) (@dependabot[bot])
  • 28669327ad50f3832006e5286fdb1a92c788ce09: build(deps): bump github.com/swaggo/swag from 1.8.12 to 1.16.1 (@dependabot[bot])
  • 79300a4cc423c68f5f7d16f208a9a711c6e7e7d6: build(deps): bump github.com/testcontainers/testcontainers-go (#1108) (@dependabot[bot])
  • c33ed147897012b2a1bdd23ca88d09740137e343: build(deps): bump github.com/testcontainers/testcontainers-go (@dependabot[bot])
  • baf3cdbcb41bd34322c255103a8c380488e3f78b: build(deps): bump github.com/testcontainers/testcontainers-go (@dependabot[bot])
  • d7d354b0d8119e787c42abe6d8cde26f2ff58540: build(deps): bump github.com/testcontainers/testcontainers-go (@dependabot[bot])
  • 702442d43eaa295daf3b9189a02e106d8993c0fe: build(deps): bump golang.org/x/net from 0.11.0 to 0.12.0 (@dependabot[bot])
  • 2523165bc88f5f8b1d6ca6db61519de522ba26a9: build(deps): bump golang.org/x/net from 0.12.0 to 0.14.0 (@dependabot[bot])
  • c88270bc3520d26e30324c0e9016776068926b98: build(deps): bump golang.org/x/net from 0.8.0 to 0.9.0 (#982) (@dependabot[bot])
  • 53d6d461a5e8295a05e63ee61fb785e179261782: build(deps): bump golang.org/x/net from 0.9.0 to 0.10.0 (@dependabot[bot])
  • 64eee04c37db5c2d46b86f03c6ce48f3596b9afb: build(deps): bump golang.org/x/tools from 0.10.0 to 0.11.0 (@dependabot[bot])
  • 3a1310307b204e37fb592f07838ffd3e041284c9: build(deps): bump golang.org/x/tools from 0.11.0 to 0.11.1 (@dependabot[bot])
  • 34dd6eb49ecc70a3b3acdc400ac6589301796727: build(deps): bump golang.org/x/tools from 0.11.1 to 0.12.0 (#1098) (@dependabot[bot])
  • 3970c432cd72089030177f3f67ab4e9192f60bc0: build(deps): bump golang.org/x/tools from 0.8.0 to 0.9.1 (@dependabot[bot])
  • 7c07de77fe877d7ad240d05a21626a87f069c4b9: build(deps): bump golang.org/x/tools from 0.9.1 to 0.10.0 (@dependabot[bot])
  • a077b1a66ab5349f8c7459591d15964eba447a77: build(deps): bump google.golang.org/grpc from 1.47.0 to 1.53.0 (@dependabot[bot])
  • c7d6cca51747987cbef11bcc6ac912009d4737ff: build(deps): bump gorm.io/driver/mysql from 1.4.7 to 1.5.0 (@dependabot[bot])
  • 0431a6487c16d38033e579bba17960598c53f1ee: build(deps): bump gorm.io/driver/postgres from 1.5.0 to 1.5.2 (@dependabot[bot])
  • d0c6a1d450ed30b89bcb8116056567257f8c8a64: build(deps): bump gorm.io/driver/sqlite from 1.4.4 to 1.5.0 (@dependabot[bot])
  • 45850f434c262ff82f19ec21b3d7f42ac7cd87f8: build(deps): bump gorm.io/driver/sqlite from 1.5.0 to 1.5.1 (@dependabot[bot])
  • d4005675a99ff88e415cdd44b89f7755cc219f4a: build(deps): bump gorm.io/driver/sqlite from 1.5.1 to 1.5.3 (#1110) (@dependabot[bot])
  • c786d41a0fcdf719e58cedc578c83380d04dcfea: build(deps): bump gorm.io/gorm (@dependabot[bot])
  • b533b5685cc19ba5110da5d55c6feb19a1477bbf: build(deps): bump gorm.io/gorm from 1.25.0 to 1.25.2 (@dependabot[bot])
  • 32ceb68daa8ab7091fd8018d30fea52ef501cb82: build(deps): bump gorm.io/gorm from 1.25.2 to 1.25.4 (#1111) (@dependabot[bot])
  • 74516ca0b9414b581ff2e31c8c30eb69fddf30cc: build(deps): bump mvdan.cc/gofumpt from 0.4.0 to 0.5.0 (#984) (@dependabot[bot])
  • 68a8476e489a0ce0f1640af4fdda186c1f51b1ce: chore(build): Automation workflows (#972) (@kwitsch)
  • 74fcd500d384f18527f7544776b9a0f5123dab85: chore(build): add format with gofumpt to build (#974) (@0xERR0R)
  • 8757dea99279c7770df28fe3accf36e4f919b774: chore(docs): add release alias for docs deployment (@0xERR0R)
  • 8614fde9d084d1afb1efd733d82846b6433c6ee7: chore(test): add HTTP listener readiness check (@0xERR0R)
  • eda3b505cd295899aeabe318bf18a64be498bc70: chore(test): set default timeout for eventually (@0xERR0R)
  • 1f2f87557546eff0d9f2834872b1a62e7e47e4c9: ci(docs): show pages URL in step summary (@ThinkChaos)
  • 2bd59484c0f9b9b1f274049fe06a0df9e602e9b2: ci: deploy docs on forks if they have pages enabled (@ThinkChaos)
  • 56633da0a7bc5b342744c8eb754c79134bf31a19: feat(sudn): refactor and expand supported special use domains RFCs (@ThinkChaos)
  • c112e867403566db6ef9bdc2fa0496b669e73c60: feat: add upstream strategy strict (#1093) (@DerRockWolf)
  • cfc3699ab5dec76321c15d9bcfaa32688dba9c38: feat: support multiple hosts files (@ThinkChaos)
  • 795f3ddf93efed893a2ff467e4afbe252d3c6417: fix: configuration for FQDN only resolver (#1025) (@ThinkChaos)
  • f22e310501b8894a6f8a0b9eee434ad0cf8c05a7: fix: duration checks to take into account values can be negative (@ThinkChaos)
  • 9b15e4807e75e01b5c26e25e156a75c700627dfd: fix: log startStrategy instead of deprecated failStartOnListError (@ThinkChaos)
  • ea95d36f37a80c59e72c6de15bf04b1651ca6c16: fix: make domain validation in list parser more lenient (@ThinkChaos)
  • 42db8ec943c9063b2001df3a2703eefa395080f4: fix: parse the API URL using the non-deprecated options (@ThinkChaos)
  • f887e82fdc31c4cf565b02725ffbd48f253124f2: fix: support IDNA in lists (@ThinkChaos)
  • dc9bba59a111174f57270e8aeca182adcf7b9b7e: fix: use correct resolver in "using response from resolver" debug log (#1082) (@DerRockWolf)
  • 5e4c155793a3db62275a7c4df9830f3cd4e6940b: refactor(config): add migration package to simplify deprecating settings (@ThinkChaos)
  • 639fba53232054fcb12f36347a555f072264d671: refactor(config): allow more configuration for upstreams (@ThinkChaos)
  • 3b9fd7bafe3d1d806ea0ebccc12ae78351a15354: refactor: use groupedCache to optimize cache access (#944) (@0xERR0R)
  • 8a93e4500c0de0110fdeae66e9c19eabaf7f3a0a: style: fix all existing lint errors (@ThinkChaos)

New Contributors

Full Changelog: https://github.com/0xERR0R/blocky/compare/v0.21...v0.22

v0.21

1 year ago

Features:

  • support for redis sentinel(#632) -> thanks @kwitsch
  • querylog: log instance hostname to distinguish log entries in multi-instance installation(#319) -> thanks @kwitsch
  • querylog: define which information should be logged (#765)
  • querylog: reduce bulk size in database writer (#733)
  • bootstrap: support multiple upstreams (#760) -> thanks @ThinkChaos
  • bootstrap: support IP only encrypted DNS -> thanks @ThinkChaos
  • bootstrap: always prefetch upstream IPs to avoid stalling user queries -> thanks @ThinkChaos
  • hostfile: allow hosts file resolver to use a HTTP(S) link or inline block (#884) -> thanks @ThinkChaos
  • client name in clientGroupsBlock should not be case-sensitive (#894)

Misc

  • Restructuring of configuration (#771) -> thanks @kwitsch
  • reduce retry delay of the upstream resolver -> thanks @ThinkChaos
  • Updated dependencies and documentation
  • ignore end of line comments when parsing lists (#859) -> thanks @ThinkChaos
  • code mirror on codeberg.org
  • e2e integration tests

Bugfix

  • ede: fix runtime panic (#778) -> thanks @ThinkChaos
  • 'startVerifyUpstream' not disabling all start checks -> thanks @ThinkChaos
  • crash when using client upstream (#791)
  • no initial cache refresh with "fast" start strategy (#804)
  • bootstrap: connectIPVersion not being respected for upstream connections
  • query command doesn't show the client IP (#861)
  • wrong prefetch metrics if bootstrap is enabled (#891)

Changelog

  • fac872b6e26e7c4f3579fbdb2de55813a0c83048: @0xERR0R chore(docs): minor changes (@0xERR0R)
  • 9abeaeddea83a89a9f2cc74e57aa3a6e91860228: Added gofumpt (#805) (@kwitsch)
  • 9be0d64885ad954a7e76376cab8428242d0614e3: CONFIG_FILE -> BLOCKY_CONFIG_FILE (#784) (@suhaibmalik)
  • b73cd3b5ba55a761025449285893457cfb6b8d19: Config restructuring (#771) (@kwitsch)
  • 641cf3de2a41d5c00080ee64c46ba7ae0955927d: Fb badge fix (#874) (@kwitsch)
  • a04a4180c38f337b565d39dbfecef578538ddb31: Fix docs for connectIPVersion param (@tmuellerleile)
  • 12ebe2aac6657c795f09d41e18fd90f181f354d9: Merge branch 'development' (@0xERR0R)
  • 53a7d4fccc384c11f65c26ef529eb35a679bc086: Test refactoring (#798) (@0xERR0R)
  • 101e2c554b3d83776428e81822dc4446902cc349: Workflow changes (#857) (@kwitsch)
  • ebad2d16116acca4bdd83763b80898eb1de86d12: build(deps): bump actions/setup-go from 3 to 4 (#936) (@dependabot[bot])
  • 30086dc95722bd47d621d9a138d66157efe5d4e8: build(deps): bump actions/stale from 6 to 7 (#809) (@dependabot[bot])
  • 7af43da03c2c83a8b337a30cb134f7b9117b22a0: build(deps): bump actions/stale from 7 to 8 (#949) (@dependabot[bot])
  • 6e69d46c6abcea832be30319feef8e5ca0d8c87d: build(deps): bump docker/build-push-action from 3 to 4 (#856) (@dependabot[bot])
  • 7874fbef0ea4e3fe6fc00e4af0b0491bce923c99: build(deps): bump github.com/abice/go-enum from 0.5.3 to 0.5.4 (#810) (@dependabot[bot])
  • de013ada3d7302dba534d5d26cd28823a68dcfc9: build(deps): bump github.com/abice/go-enum from 0.5.4 to 0.5.5 (#852) (@dependabot[bot])
  • 08691c64798ca361875c778c6ba266d844abe388: build(deps): bump github.com/alicebob/miniredis/v2 from 2.23.1 to 2.30.0 (#825) (@dependabot[bot])
  • fe58a34b13c04e59780cf67c4c6261a69621d6b9: build(deps): bump github.com/alicebob/miniredis/v2 from 2.30.0 to 2.30.1 (#918) (@dependabot[bot])
  • 0d63ca3ef59ed1284e0878c0eac39e611647ebf3: build(deps): bump github.com/avast/retry-go/v4 from 4.3.0 to 4.3.1 (@dependabot[bot])
  • 8fccd685068a98cd4d5e299f66cc1a94c5d02469: build(deps): bump github.com/avast/retry-go/v4 from 4.3.1 to 4.3.2 (#815) (@dependabot[bot])
  • de37e1964bb11a09086874ada626e724a62bb578: build(deps): bump github.com/avast/retry-go/v4 from 4.3.2 to 4.3.3 (#870) (@dependabot[bot])
  • e9626f989bba0ea70a0005240a0c1a348a2df768: build(deps): bump github.com/containerd/containerd from 1.6.12 to 1.6.18 (#881) (@dependabot[bot])
  • 1dead3af81ec7d9947e72b356aeb8a92f67b2679: build(deps): bump github.com/go-chi/chi/v5 from 5.0.7 to 5.0.8 (#789) (@dependabot[bot])
  • 7dff06c234a3b44d6fe2715f7bca4ff4a7f771bb: build(deps): bump github.com/miekg/dns from 1.1.50 to 1.1.51 (#900) (@dependabot[bot])
  • 50b0c39d34999151a46c6e236cc6908b64b43911: build(deps): bump github.com/miekg/dns from 1.1.51 to 1.1.52 (#923) (@dependabot[bot])
  • 5bd5c06292354f902a3f6cb79e1ce422d62137f7: build(deps): bump github.com/mroth/weightedrand from 0.4.1 to 1.0.0 (@dependabot[bot])
  • 9d890bb2e44d6dced9de63c32569c5731f165705: build(deps): bump github.com/onsi/ginkgo/v2 from 2.5.0 to 2.5.1 (@dependabot[bot])
  • a44e496bf2eb265eb5c912605e2126f9c5071598: build(deps): bump github.com/onsi/ginkgo/v2 from 2.5.1 to 2.6.0 (#796) (@dependabot[bot])
  • 4cc27f325b1eab42144f5be5b580a4b9f64fbbbc: build(deps): bump github.com/onsi/ginkgo/v2 from 2.6.0 to 2.6.1 (#802) (@dependabot[bot])
  • de58a7246d4cdbe26e734e66a9b378cfac8cf10d: build(deps): bump github.com/onsi/ginkgo/v2 from 2.6.1 to 2.7.0 (#826) (@dependabot[bot])
  • 4ece578bd4940f2a38b97c6bd6b61779724a6925: build(deps): bump github.com/onsi/ginkgo/v2 from 2.7.0 to 2.8.0 (#855) (@dependabot[bot])
  • c95a9c921d984ec75e9c84b279dfb3ae5e4d3fac: build(deps): bump github.com/onsi/ginkgo/v2 from 2.8.0 to 2.8.1 (#878) (@dependabot[bot])
  • d64b399fdc0b7d4b71c141149b720224f0722ec9: build(deps): bump github.com/onsi/ginkgo/v2 from 2.8.1 to 2.8.3 (#889) (@dependabot[bot])
  • 4ff9591bfc15ca01bd36f77ca3726c9a428c4fc5: build(deps): bump github.com/onsi/ginkgo/v2 from 2.8.3 to 2.8.4 (#903) (@dependabot[bot])
  • 9f58c4bf69ed0c73e7569824d1fc365973ce88cd: build(deps): bump github.com/onsi/ginkgo/v2 from 2.8.4 to 2.9.0 (#911) (@dependabot[bot])
  • e814eb53a02df3760d8ff664e1384cdb76729235: build(deps): bump github.com/onsi/ginkgo/v2 from 2.9.0 to 2.9.1 (#925) (@dependabot[bot])
  • ef0bb78bc4ae7c9cf6693970d774c04b3a15eb03: build(deps): bump github.com/onsi/ginkgo/v2 from 2.9.1 to 2.9.2 (#947) (@dependabot[bot])
  • c7f12cff0dd92ab80dfe942edfade89360ae54fd: build(deps): bump github.com/onsi/gomega from 1.24.1 to 1.24.2 (#801) (@dependabot[bot])
  • fb009053bfabc4c6db71cfb418870f25f34d44cb: build(deps): bump github.com/onsi/gomega from 1.24.2 to 1.25.0 (#831) (@dependabot[bot])
  • 638533d32da6930645c1d59d1448a827f83d078f: build(deps): bump github.com/onsi/gomega from 1.25.0 to 1.26.0 (#843) (@dependabot[bot])
  • 4ab198ba7cc83f8d5aefd2f0d5d65ce5c4311c18: build(deps): bump github.com/onsi/gomega from 1.26.0 to 1.27.0 (#883) (@dependabot[bot])
  • 00298728157c65f54080da660f62f5ade1f4b7c6: build(deps): bump github.com/onsi/gomega from 1.27.0 to 1.27.1 (#887) (@dependabot[bot])
  • 6f79af7837f8028ba4a06f43f8776ffc3b9ca114: build(deps): bump github.com/onsi/gomega from 1.27.1 to 1.27.2 (#904) (@dependabot[bot])
  • ee80208836e29daa1b6757f5566317de04001dd6: build(deps): bump github.com/onsi/gomega from 1.27.2 to 1.27.3 (#926) (@dependabot[bot])
  • 2e0b6e4394586be8326633e5abfb21988ab8e08c: build(deps): bump github.com/onsi/gomega from 1.27.3 to 1.27.4 (#927) (@dependabot[bot])
  • c74a277aca4ecf7f6dcd0568413cdef099142214: build(deps): bump github.com/onsi/gomega from 1.27.4 to 1.27.5 (#948) (@dependabot[bot])
  • 3315873b3598308ea88ed576d85963f85ee3da6e: build(deps): bump github.com/stretchr/testify from 1.8.1 to 1.8.2 (#899) (@dependabot[bot])
  • f761ad1871c133df4021061f26c479f9ca6e174e: build(deps): bump github.com/swaggo/swag from 1.8.10 to 1.8.11 (#946) (@dependabot[bot])
  • 9ae009c7a0d416dea796a1c8ab5b6c25900a52b4: build(deps): bump github.com/swaggo/swag from 1.8.7 to 1.8.8 (@dependabot[bot])
  • e754372dca920c7e84872075a7b357a4b102c068: build(deps): bump github.com/swaggo/swag from 1.8.8 to 1.8.9 (#803) (@dependabot[bot])
  • 23deb3c49303d800d6f88d4f8b9ab0f3566c8d9e: build(deps): bump github.com/swaggo/swag from 1.8.9 to 1.8.10 (#848) (@dependabot[bot])
  • d4af82903a2e0b580e87a1a18ce5f092cd85ef1c: build(deps): bump github.com/testcontainers/testcontainers-go (#882) (@dependabot[bot])
  • bacb4437da0a75f8e79a80aa85cb81d0ba4b96b3: build(deps): bump github.com/testcontainers/testcontainers-go (#917) (@dependabot[bot])
  • e08e6090df3cd93019071416222111ebb3d791a0: build(deps): bump golang.org/x/net from 0.2.0 to 0.4.0 (#790) (@dependabot[bot])
  • a02c10dcc3e21c18234a5c4d191fbb49bc868ec8: build(deps): bump golang.org/x/net from 0.4.0 to 0.5.0 (#818) (@dependabot[bot])
  • 7f5f98df6308a98e063459b3308572414e981681: build(deps): bump golang.org/x/net from 0.5.0 to 0.6.0 (#871) (@dependabot[bot])
  • 162741be421aa1da9978cb219568153279402730: build(deps): bump golang.org/x/net from 0.6.0 to 0.7.0 (#880) (@dependabot[bot])
  • 238c48be122bd213f6919528aae5e66e6bdb7f52: build(deps): bump golang.org/x/net from 0.7.0 to 0.8.0 (#912) (@dependabot[bot])
  • 8b137bb1ed2608355d4c5fd5bb0c572f27816287: build(deps): bump goreleaser/goreleaser-action from 3 to 4 (#800) (@dependabot[bot])
  • c8058e3ec7f0482aab546330ed2337aba37de938: build(deps): bump gorm.io/driver/mysql from 1.4.3 to 1.4.4 (@dependabot[bot])
  • a6a7e46db39231133e5b36d0430deaf068ad9d96: build(deps): bump gorm.io/driver/mysql from 1.4.4 to 1.4.5 (#814) (@dependabot[bot])
  • 30afdef43104ed771f8dbfc301b44f3e5868da1c: build(deps): bump gorm.io/driver/mysql from 1.4.5 to 1.4.6 (#868) (@dependabot[bot])
  • a56119174944f56aa0c01c0e90712600b8b031fb: build(deps): bump gorm.io/driver/mysql from 1.4.6 to 1.4.7 (#888) (@dependabot[bot])
  • 170e9a3ad942ccff19edbf358ae1502494f0d1c3: build(deps): bump gorm.io/driver/postgres from 1.4.5 to 1.4.6 (#812) (@dependabot[bot])
  • 583aa9e0c29e6dab5665d33e66c2fbd702a369ec: build(deps): bump gorm.io/driver/postgres from 1.4.6 to 1.4.7 (#869) (@dependabot[bot])
  • f172874e09ac6f4d306112c405d576eb4a104f95: build(deps): bump gorm.io/driver/postgres from 1.4.7 to 1.4.8 (#890) (@dependabot[bot])
  • e002f044eb5a4257583b2d5391829a22a20ac59f: build(deps): bump gorm.io/driver/postgres from 1.4.8 to 1.5.0 (#924) (@dependabot[bot])
  • 07544f938160c9e56b1b8d578b7b708ce7bf90eb: build(deps): bump gorm.io/driver/sqlite from 1.4.3 to 1.4.4 (#813) (@dependabot[bot])
  • 1f2e1a05e5ef5416d5fa920e25d550dad2a489f5: build(deps): bump gorm.io/gorm from 1.24.2 to 1.24.3 (#819) (@dependabot[bot])
  • 544d530e53dacd7b68c65e86d75b6a308b6512b8: build(deps): bump gorm.io/gorm from 1.24.3 to 1.24.5 (#865) (@dependabot[bot])
  • 0f9f937b53ddd5b3f66aac0415ac79d0a4502a33: build(deps): bump gorm.io/gorm from 1.24.5 to 1.24.6 (#908) (@dependabot[bot])
  • 61cc9ebafc4f6749f59eea7a235069790f73dfc9: build(deps): bump magnetikonline/action-golang-cache from 3 to 4 (#919) (@dependabot[bot])
  • d61d96399a8a6f6d1addec0b908bfd626a3cb7e5: build(deps): update github.com/creasty/defaults (#929) (@0xERR0R)
  • fb0810f18dd501fc3466f1dc84b3de7e3942f53b: build(tests): e2e integration tests with docker and testcontainers (#753) (@0xERR0R)
  • f78a57a94d2aa432f654cedd2305a916334ca6db: chore(build): add additional linters (#774) (@0xERR0R)
  • b4fc272f94d07a323058771ee7f82a189d450e88: chore(build): change docker authentication to access token (@0xERR0R)
  • 797d71d57c2a3ef63c5f56e4b4b96f20e2db3f8a: chore(build): disable deprecated linters (#767) (@0xERR0R)
  • 88de7c16f74e7839ba9f400e183ad86fe619fec7: chore(build): don't build images for feature branches (@0xERR0R)
  • f3d96abbae040b0f22cb4c1c3fa357a579528ac6: chore(build): exclude e2e dir from codecov report (@0xERR0R)
  • 0ab43da95647cb6719e787fcc989cec458eeefdb: chore(build): fix deprecated configuration (#817) (@0xERR0R)
  • 8fdcb6efa42e7bfcbb62f85a976e123d43c4aad1: chore(build): install mkdocs-material (@0xERR0R)
  • 2d8bc470c4a8199795618db4d8074ec908f02768: chore(build): run mirror job only on main branch (@0xERR0R)
  • d6dd2ed1be4dfa4a4114da286dcd4bb8a2561719: chore(build): set master as default branch (#744) (@0xERR0R)
  • 0e4d8a34d9236605454e7e663a7ab9b92841eaed: chore(build): update Go to 1.20 (#937) (@0xERR0R)
  • 8e70b8a975478617336638a4763ec2fc8040115d: chore(build): update golangci-lint (#931) (@0xERR0R)
  • b44e4146ab7479b7acac7c22059843eb8b7374d8: chore(build): update weightedrand to v2 (#934) (@0xERR0R)
  • a37861b756249c1b0aecb8fd802bb2e085ae366b: chore(build): use v prefixed release versions (#858, #806) (#942) (@0xERR0R)
  • 7331e29e0eaa6f24b0309381afd035528da6a221: chore(deps): remove obsolete replace for testcontainers (#935) (@0xERR0R)
  • d1988a413daae732bdcab13dade77d8a72442268: chore(deps): update opencontainers (CVE-2019-19921) (#943) (@0xERR0R)
  • 2b0c377702524a4e19404132b833b70fbd84537f: chore(docs): minor format changes, typos (@0xERR0R)
  • e482eb43e917da43ae8a20d89c7dabe20952bd84: chore(docs): use docs versioning (@0xERR0R)
  • c199750b0d420326b215e2fd41c67ec12abd3eb5: chore(log): always report group name when cache populating failed. (#875) (@shizunge)
  • 32d0014a2be83b8089a0c9afa5fdfe8a5b90d48e: chore(test): exclude mocks from code coverage report (@0xERR0R)
  • db1e2fd6550215fa35663800f6ed17642f484be5: chore(test): fix freezing test (#932) (@0xERR0R)
  • 5a9da900b233b73cabefbd937a1fb4a45aa557a5: chore(test): increase timeout (#820) (@0xERR0R)
  • ebe3805c9c777242f8220848bc10821992dc2302: disable docs workflow on forks (#939) (@kwitsch)
  • e47a8b7f609bea5f6cc14e96155c3d1b8f78d54d: feat(bootstrap): support IP only encrypted DNS (@ThinkChaos)
  • a79459987ba5d0573ccd45d98d5459b067ddfd2d: feat(bootstrap): support multiple upstreams (@ThinkChaos)
  • d4813a6448219d9425db7055ab6f3c9c8b361519: feat(queryLog): log instance hostname to distinguish log entries in multi-instance installation(#319) (#756) (@kwitsch)
  • 2b49c2048f6972dfe2a0364a03004fdbf1248646: feat(querylog): define which information should be logged (#765) (#766) (@0xERR0R)
  • c19d4bd60dbb8625bd000de205cfb0ddbf95c883: feat: Support for redis sentinel(#632) (@kwitsch)
  • 7da4724c0315e71fe19070a18b5a861bde4ee297: feat: add cache entire DNS response (#833) (#909) (@0xERR0R)
  • de9acd3849a569c2f0c714234a718921626a409c: feat: add upstream string to resolve error (#902) (@ThinkChaos)
  • a2ab7c3ef1d4fcdddcacc88180d2ab3d2dd26fae: feat: allow hosts file resolver to use a HTTP(S) link or inline block (#884) (@ThinkChaos)
  • 63f65002e8518d93567403c6ad067e808fcf411c: feat: always prefetch upstream IPs to avoid stalling user queries (@ThinkChaos)
  • 120e32c1eb96aea60bd84f38244e6466705a38d2: feat: client name in clientGroupsBlock should not be case-sensitive (#894) (#913) (@0xERR0R)
  • d2ca5a4a6f56e9743ad7c5cefb39e71b93ec7ba9: feat: reduce bulk size in database writer (#733) (#762) (@0xERR0R)
  • 7c7683637381ab907a22a8811aaf223bf05cd5c1: feat: stack log prefixes to differentiate between log emitters (@ThinkChaos)
  • add591c5a49fc6689918352a5386f3282b503a98: fix(ede-resolver): don't panic when next resolver errors (#778) (@ThinkChaos)
  • 87779d58398367386c0fd47a20a865fd44b90a05: fix(resolver): crash when using client upstream (#791) (#793) (@0xERR0R)
  • 4f01d017df83c9e4f8f6f57d85ee89af8999058d: fix(resolver): query log creation cooldown not being fixed (@ThinkChaos)
  • 164e398d04993151aaf440599437c01db160d73b: fix(resolver): upstream long retry delay (@ThinkChaos)
  • 2cb826db220de50b743056999c08c7b7bde5a3ba: fix: connectIPVersion not being respected for upstream connections (@ThinkChaos)
  • c06c017a1a80734fc2b78eccc578c5dce8fc5a46: fix: startVerifyUpstream not disabling all start checks (@ThinkChaos)
  • 6548d15d8bd82a4b17150b023f981efb20cc590f: fix: ignore end of line comments when parsing lists (@ThinkChaos)
  • 3c40ce5d3b2cc256ed55ed2522f8d26605006a83: fix: no initial cache refresh with "fast" start strategy (#804) (@0xERR0R)
  • bcea1a93db3d7f1840f0a3187fb8a845c0d7a8b2: fix: query command doesn't show the client IP (#861) (#914) (@0xERR0R)
  • f2e488678bd650089a76bad0e1972a5b1c01835a: fix: wrong prefetch metrics if bootstrap is enabled (#891) (#915) (@0xERR0R)
  • 7fa7e2ec792effbe047cb3cf8bb313b04473b553: refactor(resolver): only build mocks during tests (@ThinkChaos)
  • 0157f4ce564a80c9ccc533b4c9c972b65820abee: refactor: add generics to ExpiringCache (#933) (@0xERR0R)
  • 5088c75a78a7c24322c2e01102cd592fba6c7996: refactor: configuration rework (usage and printing) (#920) (@ThinkChaos)
  • 36160e916eafbdf51287dc8729c71735d8c9452b: refactor: don't use a regex to check a string cache entry is a regex (@ThinkChaos)
  • d501d867dfecbabd906d903e476ecfbd23295f6d: style(resolver): standardize configuration disabled impls and tests (@ThinkChaos)
  • 45d96a2f49d120848096d5f82b0fa1c5a087d435: style: fix lint (#781) (@ThinkChaos)
  • 012c8d49f81166d0465ec6690d7600c6cf2b72f8: test(bootstrap): add connectIPVersion tests for HTTP Transport (@ThinkChaos)
  • 65137b451490e462a4a9ea63211dc136eec3ba13: test(bootstrap): add test case (@0xERR0R)
  • 4ad7670bf9cef2b1eb757b7bef6937f6f9de2238: test(e2e): added more startVerifyUpstream tests (@0xERR0R)

v0.20

1 year ago

Features:

  • ability to specify certificate common name for the upstream DNS server. -> thanks @amigan
  • Add connectIPVersion to choose how Blocky connects to other hosts -> thanks @ThinkChaos
  • Add fallbackUpstream for conditional mapping -> thanks @adyanth
  • Add primary key to the query log table
  • Added simplified check for loopback -> thanks @FileGo
  • Enable start as long as at least one upstream resolver in group is reachable -> thanks @FileGo
  • Option to handle FQDN only requests -> thanks @kwitsch
  • add grafana template for Postgres -> thanks @liboz
  • caching for empty DNS responses
  • Blocky should start resolving DNS traffic as soon as possible -> thanks @kwitsch
  • delivery of blocking group as EDNS error -> thanks @kwitsch
  • Special-Use Domain Names -> thanks @kwitsch

Misc

  • Change self-signed cert to ECDSA -> thanks @FileGo
  • Disable colors when not in interactive terminal -> thanks @desolatorxxl
  • Docker container rework -> thanks @kwitsch
  • Filter loopback addresses from hosts file -> thanks @FileGo
  • Updated dependencies and documentation

Bugfix

  • Ignore non YAML files when loading from a directory -> thanks @ThinkChaos
  • format ipv6 URL for DoH bootstrap request according to RFC3513
  • set content-type header for HTTP endpoints
  • set host header for DoH requests

v0.19

1 year ago

Features:

  • Add rewrite support to custom DNS (#449) -> thanks @ThinkChaos
  • CustomDNS: parameter "filterUnmappedTypes" to allow/disable forwarding to the upstream resolver
  • filtering of queries (#450) (#474)
  • Support of DoH/DoT as bootstrap DNS (#485) -> thanks @ThinkChaos
  • Memory optimization internal blacklist/whitelist cache (#513) (#514)
  • Cache refresh memory consumption optimization (#470) (#515)
  • Enable "ForceAttemptHTTP2" for DoH upstreamClient -> thanks @PeterDaveHello
  • Improve DoT server TLS cipher suites -> thanks @PeterDaveHello
  • Hide DoH client http header "User-Agent" -> thanks @PeterDaveHello
  • Add HTTP Secure Headers on HTTPS server response (#545) -> thanks @PeterDaveHello
  • Make DoH/DoT server mininum TLS version configurable (#546) -> thanks @PeterDaveHello
  • Adds user customizable DoH upstream user agent (#525) -> thanks @FileGo
  • Support for multiple configuration files (#534) -> thanks @FileGo
  • Self-signed certificate generation (#532) -> thanks @FileGo

Misc

  • Updated dependencies and documentation
  • Environment variable for configurable config file location -> thanks @ohemmali

Changelog

  • e6957a3 Make DoH/DoT server mininum TLS version configurable (#546)
  • a120aaf Add HTTP Secure Headers on HTTPS server response (#545)
  • 3a7d52b Add default Block TTL information in the docs (#484)
  • 5878314 Add default Block TTL information in the docs (#484)
  • f8b6e59 Add rewrite support to custom DNS (#449)
  • 776c51f Adds user customizable DoH upstream user agent (#525)
  • 81dd0c9 Bump github.com/alicebob/miniredis/v2 from 2.18.0 to 2.19.0 (#458)
  • 8acf474 Bump github.com/alicebob/miniredis/v2 from 2.19.0 to 2.20.0 (#468)
  • 8753b91 Bump github.com/alicebob/miniredis/v2 from 2.20.0 to 2.21.0 (#507)
  • b503422 Bump github.com/avast/retry-go/v4 from 4.0.3 to 4.0.4
  • 2f8ad8a Bump github.com/avast/retry-go/v4 from 4.0.4 to 4.0.5 (#528)
  • 568e255 Bump github.com/creasty/defaults from 1.5.2 to 1.6.0
  • 3774b8c Bump github.com/go-chi/cors from 1.2.0 to 1.2.1 (#499)
  • e0f2ba4 Bump github.com/go-redis/redis/v8 from 8.11.4 to 8.11.5 (#460)
  • 404313c Bump github.com/miekg/dns from 1.1.46 to 1.1.47 (#453)
  • b2c0535 Bump github.com/miekg/dns from 1.1.47 to 1.1.48 (#489)
  • 651ab87 Bump github.com/miekg/dns from 1.1.48 to 1.1.49 (#511)
  • 1197d61 Bump github.com/onsi/ginkgo/v2 from 2.1.3 to 2.1.4 (#506)
  • 56712ff Bump github.com/onsi/gomega from 1.18.1 to 1.19.0 (#469)
  • 688dae8 Bump github.com/prometheus/client_golang from 1.12.1 to 1.12.2 (#521)
  • dbd1730 Bump github.com/spf13/cobra from 1.3.0 to 1.4.0 (#451)
  • 7289db8 Bump github.com/stretchr/testify from 1.7.0 to 1.7.1 (#456)
  • 0247a54 Bump github.com/stretchr/testify from 1.7.1 to 1.7.2 (#555)
  • 1253913 Bump github.com/swaggo/swag from 1.7.8 to 1.8.0
  • c686ca0 Bump github.com/swaggo/swag from 1.8.0 to 1.8.1 (#479)
  • 9734eef Bump gorm.io/driver/mysql from 1.3.2 to 1.3.3
  • 620e6fe Bump gorm.io/driver/mysql from 1.3.3 to 1.3.4 (#549)
  • 79f982c Bump gorm.io/driver/postgres from 1.3.1 to 1.3.3 (#487)
  • 8fabd2c Bump gorm.io/driver/postgres from 1.3.3 to 1.3.4
  • 8e472aa Bump gorm.io/driver/postgres from 1.3.4 to 1.3.5 (#503)
  • 8d0bd8e Bump gorm.io/driver/postgres from 1.3.5 to 1.3.6 (#530)
  • f151699 Bump gorm.io/driver/postgres from 1.3.6 to 1.3.7 (#548)
  • 89fdaa8 Bump gorm.io/driver/sqlite from 1.2.6 to 1.3.1 (#439)
  • 8397c44 Bump gorm.io/driver/sqlite from 1.3.1 to 1.3.2 (#504)
  • 6d33ec7 Bump gorm.io/gorm from 1.22.5 to 1.23.2 (#448)
  • 07f0d1f Bump gorm.io/gorm from 1.23.2 to 1.23.3 (#463)
  • bc8a35e Bump gorm.io/gorm from 1.23.3 to 1.23.4 (#488)
  • e34c6c7 Bump gorm.io/gorm from 1.23.4 to 1.23.5 (#505)
  • 3392de0 Cache refresh memory consumption optimization (#470) (#515)
  • 102d31e Change swagger URL to match blocky's version (#498)
  • 2bb2f97 CustomDNS: parameter "filterUnmappedTypes" to allow/disable forwarding to the upstream resolver (#467)
  • beb380e Defining env var for configurable config file location (#473)
  • 63cfaba Enable "ForceAttemptHTTP2" for DoH upstreamClient (#519)
  • 45fae43 Fix the indent of yaml code block in docs/configuration.md (#481)
  • 72a982c Fix the indent of yaml code block in docs/configuration.md (#481)
  • 4d1f09f Fixing unexpanded CMD variable with correct defaulting behavior. (#478)
  • 4690ed8 Hide DoH client http header "User-Agent", fix #446 (#518)
  • 4780b48 Improve DoT server TLS cipher suites (#520)
  • 6772438 Memory optimization internal blacklist/whitelist cache (#513) (#514)
  • eb305d7 Merge branch 'development'
  • 97aa99d Merge branch 'development'
  • b67df0b Merge pull request #486 from 0xERR0R/dependabot/go_modules/gorm.io/driver/mysql-1.3.3
  • e60b213 Merge pull request #492 from 0xERR0R/dependabot/go_modules/gorm.io/driver/postgres-1.3.4
  • 0029899 Merge pull request #496 from 0xERR0R/dependabot/go_modules/github.com/avast/retry-go/v4-4.0.4
  • 3ae4050 Merge pull request #497 from 0xERR0R/dependabot/go_modules/github.com/creasty/defaults-1.6.0
  • 8bb4f73 Removed net.Error.Temporary (#536)
  • 92fd623 Self-signed certificate generation (#532)
  • 0731ebe Support for multiple configuration files (#534)
  • 62c7816 Support of DoH/DoT as bootstrap DNS (#485)
  • bec973b Update reference configuration file in the docs (#480)
  • c4ed82f Update reference configuration file in the docs (#480)
  • 2944deb Update to Go 1.18 (#540)
  • 27c8cbf Update to gingko v2 (#447)
  • 43d3e15 Use same minTLS ver & cipher for DoH as DoT server (#524)
  • 2994e2a add additional logging context (#482) (#516)
  • f2d5b56 add logging on server start
  • f44fc03 cache DNS queries in bootstrap DNS (#454)
  • 28789ee filtering of queries (#450) (#474)
  • 07b7765 generate self-signed certificate only if TLS or HTTPS listener are enabled
  • 1ddf397 go mod tidy
  • c96802b go mod tidy
  • 2aee3ce improved LRU cache operations (avoid expensive iteration in TotalCount)
  • fd8c61c improved LRU cache operations (avoid write lock on TotalCount)
  • d1289e8 removed deprecated configuration parameters
  • 476dd7d update go-enum to v0.4.0
  • a4b8953 update golangci-lint (#510)
  • 828a706 update golangci-lint-action
  • 8d5c2b1 update setup-go action

v0.18

2 years ago

Features:

  • QueryLog: Configurable retry to establish the database connection
  • Configuration of TTL for custom DNS mapping -> thanks @ThinkChaos
  • Configuration of multiple listen addresses/ports -> thanks @ThinkChaos
  • Synchronization of DNS cache between multiple instances with redis (#344) -> thanks @kwitsch
  • Synchronization of blocking state between multiple instances with redis (#377) -> thanks @kwitsch
  • Use hosts file as input for custom DNS mapping (#362)-> thanks @FileGo
  • Additional Prometheus metric "failed_download_count" (#309) -> thanks @FileGo
  • Support of PostgreSQL for query log (#348)
  • Conditional forwarding of all queries for unqualified hostnames (#363) -> thanks @kwitsch
  • Use full qualified client name as group name (#329)

Bugfixes

  • Binary shows "undefined" as version

Misc

  • Updated dependencies and documentation
  • Updated Grafana dashboard -> thanks @coolguy1771
  • Docker container runs under unprivileged user instead of root
  • Release binaries for MacOs (darwin)

Changelog

  • 69dc383 Allow configuring multiple listen addresses for each port (#372)
  • 926f06c Add failed_download_count prometheus metric (#309) (#395)
  • cbcd09c Allow configuring custom DNS TTL (#370)
  • 35d257b Bump github.com/alicebob/miniredis/v2 from 2.17.0 to 2.18.0 (#415)
  • a02f7f2 Bump github.com/avast/retry-go/v4 from 4.0.2 to 4.0.3 (#427)
  • 44e3ada Bump github.com/miekg/dns from 1.1.43 to 1.1.44 (#376)
  • 2afdafb Bump github.com/miekg/dns from 1.1.44 to 1.1.45 (#383)
  • 6270b6b Bump github.com/miekg/dns from 1.1.45 to 1.1.46 (#429)
  • 64c1985 Bump github.com/onsi/gomega from 1.17.0 to 1.18.0 (#421)
  • dc65e3a Bump github.com/onsi/gomega from 1.18.0 to 1.18.1 (#423)
  • 108eeb5 Bump github.com/prometheus/client_golang from 1.11.0 to 1.12.0 (#414)
  • 2faa4a9 Bump github.com/prometheus/client_golang from 1.12.0 to 1.12.1 (#425)
  • cc968ce Bump github.com/spf13/cobra from 1.2.1 to 1.3.0 (#371)
  • 0973bb9 Bump gorm.io/driver/mysql from 1.1.3 to 1.2.0 (#346)
  • 3fa79b4 Bump gorm.io/driver/mysql from 1.2.0 to 1.2.1 (#354)
  • f0b1bd0 Bump gorm.io/driver/mysql from 1.2.1 to 1.2.2 (#384)
  • 02e1aa5 Bump gorm.io/driver/mysql from 1.2.2 to 1.2.3 (#400)
  • 7dc2bfe Bump gorm.io/driver/sqlite from 1.2.3 to 1.2.4 (#341)
  • d0a4049 Bump gorm.io/driver/sqlite from 1.2.4 to 1.2.6 (#350)
  • 9c0f5bb Bump gorm.io/gorm from 1.22.3 to 1.22.4 (#353)
  • ed72bc4 Bump gorm.io/gorm from 1.22.4 to 1.22.5 (#405)
  • 04b21e4 Do not run docker build on fork (#402)
  • df9866f Docker image vulnerability scan with grype (#441)
  • b43c7aa Enable resolving hosts file (#362)
  • d3611fb FR: DNS cache sync between multiple blocky instances (#344) (#365)
  • c88ca4a Improve error message for wrong upstream definition #356
  • 25ad3a9 Make go:build compatible with go 1.16 (#361)
  • 9259c5c Moved index.go to go:embed (#392)
  • a3edada Perform codeql scan on each commit
  • 6c38c93 Redis client (#416)
  • 5e0a4cf Release binaries for darwin (MacOS) (#390)
  • d7bf373 Replace all sleeps in tests with "eventually" from gomega (#379)
  • 4b85eed Replace retry implementation with retry-go
  • 9b47524 Retry to establish db connection for query log (#351)
  • f6f9bde Revert "Perform codeql scan on each commit"
  • 759f55d Rewrite DNS response cache (#378) (#413)
  • c176b02 Support Postgresql database for query log (#348)
  • ee451f8 Sync blocking enable/disable over redis (#377) (#403)
  • d414c26 Update dependencies
  • 9c5ba48 Update to alpine 3.15 as runtime image
  • f9369d8 Use full qualified client name as group name (#329)
  • 1fd7ddd Use non-root user in docker container (#382)
  • 8921a16 [Feature] Conditional forwarding of all queries for unqualified hostnames (#363) (#409)
  • 9fcb11e added "dist" to dockerignore
  • 2751247 added description for Conditional forwarding, reformatted
  • 75bd9f3 added timeout parameter
  • d0e68d7 added variables (export for sharing externally)
  • ccc6f88 externalize retry parameters for query log
  • d6bb02f fix lint issues
  • 96384f7 fix: binary shows "undefined" as version #373
  • 5e0020f fix: update dashboard for new grafana versions
  • 079bde5 fix: update dashboard for new grafana versions
  • f12a2ed go mod tidy
  • 9855d4f go mod tidy
  • 2b6c934 increased timeouts in test
  • 42a09f0 removed dead links (#424)
  • d6010dd removed variable value
  • b59ce46 replace blocking upstream resolvers in the documentation (#426)
  • 61ca25c sanitize log output
  • 68cc391 typo
  • 779681b update gorm dependency
  • 7ea5ba4 updated github.com/go-chi/chi
  • cdec995 updated retry-go

v0.17

2 years ago

Features:

  • Client name can be extracted from URL (DoT/DoH)
  • Allow to define different client names for the same group -> thanks @kwitsch
  • Configurable caching for negative results (NXDOMAIN) -> thanks @kwitsch
  • DNS-over-TLS (DoT) Server support -> thanks @kwitsch
  • Query log can be disabled -> thanks @FileGo
  • Application startup should optionally fail if initial download of a single list failed -> thanks @kwitsch

Bugfixes

  • Ipv6 parsing error in upstream definition
  • added missing field in query log

Misc

  • Updated dependencies and documentation

Changelog

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

v0.16

2 years ago

Features:

  • Configuration of block time -> thanks @grilix
  • Configurable upstream lookup timeout
  • Configurable list download timeout
  • New Grafana Dashboard for database queries -> thanks @GitSchorsch
  • Storing the query log in the database
  • Inline lists definition (inside config.yaml)
  • Obfuscate log output for user sensitive data to increase privacy
  • Regex support in black and white lists for matching

Bugfixes

  • customDNS resolver should return NOERROR instead of NXDOMAIN for existing domain mapping
  • Request duration metric is not populated if request resolution was faulty
  • bootstrapDNS not used for upstream DNS resolution

Misc

  • Updated dependencies and documentation
  • Changed configuration format for duration
  • Updated documentation
  • Removed stats output in the console in favour of the database query log and new Grafana dashboard
  • changed package name (fully-qualified name as module)

Changelog

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

v0.15

2 years ago

Features:

  • Enable compression for DNS response (#205)
  • Configuration for listening IP for HTTP/HTTPS listener (#221)
  • Enhanded configuration of prefetching (#211, #198)
  • Enable wire format compression to support Android 9 DoH (#236)

Bugfixes

  • set the truncated header when sending large responses via UDP (#205)
  • If multiple whitelist-only groups are defined, blocking of not whitelisted domains does not work (#202)

Misc

  • Updated dependencies and documentation

Changelog

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

v0.14

3 years ago

Features:

  • Disable/Enable single blocking group via REST api and CLI (#111)
  • Added additional binaries (for *BSD) (#188)
  • Prefetch hit metrics (#190) -> thanks @moolex
  • Added tini to docker image (#180) -> thanks @onedr0p
  • Configuration of different upstream DNS servers for different clients (#81)
  • Caching of all query types (#186) -> thanks @moolex
  • Configuration to disable/enable timestamps in the log file (#182) -> thanks @Harnish
  • Enable ad-blocking for queries from conditional upstream (#174) -> thanks @moolex
  • Added support of disable ipv6(AAAA) query (#171) -> thanks @moolex
  • Changed resolver order (Custom DNS before conditional configuration) (#164)
  • Block additional DNS record types (#165)

Bugfixes

  • Use correct Base64 decoding to make DoH really work (#176)
  • fix panic with empty query (#173) -> thanks @moolex
  • Enhanced logging if upstream request fails
  • Segmentation fault on TCP request with UDP fallback (#162)

Misc

  • Updated dependencies
  • Updated Grafana dashboard

Changelog

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