- Bugfix: Treating npe at networks mapping when network hasn't a gateway ip #580.
- Adjusting binary generation to compatibility. #586
- Solver Remote Refactoring. #589
- Detect which condition didn't match and log the cause when configuring DPS as default DNS #580
- Fixed backend develop docker-compose.yml
- Implemented but not exposed Canary Rate Threshold Circuit Breaker Strategy. #533
- Module to beans which need to initialize on app startup, different of StartupEvent, Eager are not coupled to DPS logic.
- Implementing an IntTest which can validate the happy path of all DPS solvers, being able to detect bugs like the fixed at 3.25.14 (6db82f50d54bd3f3aed15d7120c1963c0386abf4).
- Specify from which source the config is coming to facilitate troubleshooting. #533
- Commandline module upgrade to be able to execute new usecases when creating new native int tests. #533
- Option to set config file path from the ENV, see the docs.
- Fixing SolverRemote NPE #533
- Unifying circuit breaker abstractions #553
- Creating an abstraction of circuit breaker implementation #533
- Agnostic interface to support multiple circuit breaker strategies config #533
- Create
IntTests
suite, they are comp tests which can be run within native image, see the docs #480 - Upgrading necessary deps
- Fixing Caffeine dep broken dps binary image
- Handling and logging fatal errors #480
- SolverRemote: Exclude remote servers with open circuits. #526
- Refactoring SolverRemote module to implement circuit optimization #526
- Refactoring SolverRemote module to implement circuit optimization #526
- Change the caching strategy to minimize the locks and prevent deadlocks #522
- Disable CircuitBreaker check by using ping, keep using the queries to check the server status #526
- Disable Cache Flush when Circuit Breaker change state to Half Open #526
- Log Remote Servers circuit states #526
- Resources utilization optimization by disabling connection check at every query #524
- Migrating cache to caffeine #522
- Ensure thread will have name at the logs, behavior changed since
3.25.0
#436.
- Optimize resource utilization by using Java Virtual Threads #436.
- Mitigate arm release failure due inexistence of required debian package #517
- Fixing
noRemoteServers
wasn't being respected at the JSON file since3.19.2
#513
- Downgraded necessary libc version to run aarch binary to 2.28 #507
- Build Aarch64 image with page size of 64k to Increase Compatibility #505
- Fixing graal-sdk dep binary impacts arm, windows, amd static generation
- Fixed Jar release which was broken when at
3.22.0
depending on the JRE vendor
- #473: Qemu upgrade
- #496: Fixing aarch binary not building
- #285, #494: Fixing amd64 static docker image.
- #435: Make DPS dynamic linked binary compatible with libgc 2.15 again
- #435: Upgrading docker run images due glibc
- #285: Linux AMD64 static binary
- #435: GraalVM Upgrade to 21 LTS
- #427, #481: Hotfix for ipv6 address represented with subnet mask
- #465: DnsConfigurators: checking docker connection
- #474: Fixing errors log occurs when fallback to host machine IP.
- #476: Fixing invalid IP parsing usecase
- #471: Fixing Help/Version Command Not Working Properly
- Config module domain refactoring, see #470
- Resources usage optimization identified at #455
- Remote Server Solver Cache Consistency Guarantee, see #455.
- Refactor
SolverRemote
module, see #460.
- Refactor
SolverRemote
solver class, see #459.
- Refactoring proposed at #449.
- Log changes
- Fixing native image JSON config parse, bug introduced on 3.18.0
- Fixing native image JSON config parse, bug introduced on 3.17.3
- Parameters for Remote Solver Circuit Breaker, see #440.
- DPS Config module refactoring due #440, see #447
- Fixing regression, leading with no ipv6 response, see #446
- Docker Solver module refactoring, see #444
- Feature toggle to turn off Docker Solver Host Machine IP fallback, see #442
- Fixed NPE when no IPV6 is found to answer to the client #428
- Fixing Native Image Reflection JSON Parsing #437
- Bump Docker client API to fix compatibility with Docker version 25 #432
- Circuit Breaker for Remote DNS Servers #415
- Support for AAAA records on Docker container, LocalDB and System solving.
- AAAA GUI records support
- DPS Network IPV6 Support
- Formalize Recursion Available on query responses as DPS supports this feature already, see #392
- Defined a new process of releasing the stable versions, see "Getting Started -> Release Version Control" for more details
- Fixed arm64 images stopped being pushed at
3.9
- Cache improvement for a concurrent approach synchronized by key
- Increasing tcp and udp server parallelism from 20 to 50 threads each, threads are created lazily
- Fixing solver NPE on unsupported query types
- Option to not comment out existing nameservers from resolv.conf see the docs
- Option to disable remote solvers, see the docs for more details.
- Fixing DPS auto connect feature stops working suddenly, see #408
- Option to customize RCODE when no entries are found by all tried solvers see the docs
- Specify minimum required docker api version
1.21
(as DPS 2)
- Fixing regression on version 3.14 host.docker wasn't solving host IP when running inside a container, see #384.
- Support for regex on localdb solver and docker container hostname and HOSTNAMES env
- Smarter Cache for loading with Docker and LocalDB Solvers see #376
- Docker host parameter by flag, json config or env
- Full support for Docker containers solving on Windows Binary, DPS on docker already works on Windows
- Prefer to solve real network card address when querying for
host.docker
- Caching remote solved hostnames for 5 minutes
- Caching not found hostnames for 1 hour
- Gui interface to clear the cache
- Created but not documented APIs to get cache size its and values
- Increased remote solver timeout to 10 seconds to make sure won't get easlily get timeout due to server slowness
- Ordering interfaces by index when choosing an IP as the machine IP, put loopback at the end of the list.
- Holding TCP open connections up to 2min respecting RFC-1035 section "4.2.2. TCP usage"
- Fixed too many occurrences of "java.net.SocketException: Socket closed"
- Limited TCP/UDP Server thread pool up to 20 threads due to control memory usage
- Log level adjustments
- Binding UDP server to anylocalhost just as TCP this way DPS can be used on any interface.
- Disabling mac as the binary isn't working macos-latest, see #341
- Fixing DPS network features startup
- Also configuring resolv.conf on Mac when in standalone mode
- Fixing random failure on dns configs restore on MacOSX
- Windows and MacOs binary releases (beta)
- This version is focused on Windows and MacOS binary release
- Now, releasing the latest docker image
- Support to configure DPS as default DNS Server on Windows.
- Fixed previous DNS servers restore on Mac.
- Fixing
SIGTERM
signal wasn't being respected at Linux image
- Now you're able to activate flags by using
1
ortrue
(case insenstive), see the docs.
- Support to configure DPS as default DNS Server on MacOS, see the docs
- Configure DPS at system-resolved with a custom port when is necessary
- Auto DNS configurator will give up to configure after 3 failures
- LocalSolverDB Wildcards fix: wasn't working
- LocalSolverDB Case sensitive query fixes: camelCase hostnames weren't being solved
- Final release
- Add local entry
dps-sample.dev
so people can better understand how this feature works
- DPS will detect and configure systemd-resolved when available
- The default value of MG_RESOLVCONF was changed to
/host/etc/systemd/resolved.conf,/host/etc/resolv.conf,/etc/systemd/resolved.conf,/etc/resolv.conf
See issue #321 for more details.
They will separate by comma , DPS will look for each value, try to use it and stops when finds a valid value, some path which is able to configure (an existing path, with the right read and write permissions and parseable by DPS)
/host/etc/resolv.conf,/etc/resolv.conf
- Be able to run in docker container in network host mode
- When finding network by name must find with the exact name
- Fixed docker container wasn't solving from env when the names weren't separated by
,
(spaces before and after the comma were needed)
- Fixed DPS container was connecting to DPS network with wrong IP
- Respecting OS to configure as default DNS
- Other minor fixes
- Better error treating and log formatting
- TCP Server: Ensure will read the header before go to next step
- TCP Server Partially message read fix, fixing
status=headerMsgSizeDifferentFromReadBytes!
message
- Work only with up interfaces
- Re-activate loopback interfaces
- Fixing UDP binding server to any interface on the machine wasn't working for some clients
- Binding UDP server to any interface on the machine
- Fallback to 127.0.0.1 interface when the real one is missing
- Doc adjustments
- Fixing doc broken pages due hugo previous upgrade
- Fixing docker container wildcard solving
- Prioritize to solve bridge networks over overlay ones
DPS 3 - Minor fixes
- Timed out remote servers responses are being cached, it cant happen, when its a timeout cant cache but when the record really dont exists, like AAAA for bookmarks.mageddo.com must cache.
- Must read conf from dps binary path not the current os path where dps was called
- Log level not being respected, at least no when running in native image binary
- Removed quarkus splash logo
- Fixing reponse warning
;; Warning: query response not set
- TCP Protocol support
- Generating new distributions binaries
- aarch64 aside docker image
- uber jar, target jvm = 17 for now
- Fixed home page was pointing to wrong place
- DPS has your code totally refactored by maintaining the previous features, it's a structuring for new features See details at DNS Proxy Server 3 #267
- Support for absolute paths on config files (#188)
- Fixing docker image on latest version wasn't being updated
- Fixing gateway IP resolution when not in DPS network (#186)
- Fixing unnecessary stacktraces were being logged
- Answering NXDOMAIN when no answers were found
- Fixing logging file trace
- Bumping github-cli to fix releasing
- Resolving docker services using configured DPS domain
- Fix presence check of config setting "domain"
- Adding working around coordinates for resolv.conf at the docs
- Fixing releasing
- Fixing wrong mapping on
logLevel
property
- Change log level before try to log something
- Feature: Multiple environments, now you can setup a group of hostnames and save it to a environment, then you can create a new environment and switch between them, very useful when working on different contexts switching from QA to PROD, for example, see the docs
- Clearing cache for resolvers when the config file is saved
- Separating the build image from final image, removing unnecessary bash command
- Fixing docker build was using deprecated apt-get option
- Reducing docker image size by 20%~
- Go version upgrade from 1.11 to 1.12
- Upgrading docker images to debian-10-slim
- Reducing up to 30% on image size
- Decreasing chance of acl issues by giving priority to answer ip of bridge networks over overlay ones
- Now DPS can have your own network this way it can access and be accessed by all docker containers, not enabled by default see the docs
- Fixing ping slowness
- Fixing docker hub push
- Fixing log level wasn't being respected
- Ability to specify remote server port
- Introducing storage api v2
- Refactoring the docs to use Hugo templates
- Fixing nil pointer when remote server get timeout (#126)
- Simplify bug report
- Fixing nil pointer when remote server returns timeout
- Making some refactoring facilitating to the feature requested at #121
- Fixing nil pointer sometimes when the hostname were not found
- Fixing broken answer when hostname is not found
- Fixing ping slowness
- Make sure value column will not break the table (#116)
- Support for CNAME on local entries, see the docs
- Possibility to change container hostname domain, see the docs
- Now you can customize host machine hostname, see the docs
- Increased default loglevel to INFO
- Build arm images on travis cause docker hub haven't support
- Fixing binaries were generated for wrong arch
- Official support for ARM
- Supporting Multilevel wildcard
- Fixing ping slowness, bug introduced on 2.9.0
- Now remote resolved names are cached respecting TTL
- Refactored local storage cache
- If your container have multiple networks you can specify which network to use when solving IP by specifying
dps.network
label
- Now you can access your container by its container / docker-compose service name, syntax is
<container-name>.docker
- Updating docs
- Now you can solve host machine IP from anywhere using host
host.docker
- Organize some logs and auto reconfigure as default dns if resolvconf changes
- Fixing wildcard resolution were not solving main domain to local configuration, just the subdomains
- Fixing log level that stopped of work after 2.5.0
- Fixing and increasing docs development instructions
- Fixing wildcard resolution were not solving main domain to docker container, just the subdomains
- Fixing ping slowness, takes more than 10 seconds to respond
- Migrate to static logging tool
- Service restart command was with typo
- Enable/Disable log/set log path using
MG_LOG_FILE
env or--log-file
command line option or json config - Change log level using
MG_LOG_LEVEL
env or--log-level
command line option or json config
- Domains wildcard support
If you register a hostname with
.
at start, then all subdomains will solve to that container/local storage entry
- Some times container hostname don't get registered at machine startup
- Cache Rest API v1 is exposed
- Preventing nil pointer when container inspection fails
- Increased code coverage
- Implementing cache at local hostnames and remote server resolution
- Considering TTL to invalidate hostname cache for local resolution
- All build and release process is made inside docker (no travis dependency)
- Refactor project structure to save dependencies in vendor folder
- Automating build with Travis
- Fix -
Error response from daemon: No such container...
message. see #29 - Fix - hostname don't get removed when the container has killed. see #26
- Turn publish port optional when running as service using docker mode
- BugFix - Service stopped of work in normal mode
- Support for --version option that shows the current version
- Docker Compose is not required anymore to run DNS Proxy Server as a docker service
- Ability to customize remote server
- Fixing DNS solution order from (local, docker, remote) to (docker, local, remote)
- Now, at least docker 1.9 API v1.21 is necessary
- Making it compatible with docker 1.8 api v1.20
- compliance with: https://keepachangelog.com/en/1.0.0/