Releases: claranet/go-dnsmasq
Releases · claranet/go-dnsmasq
v1.3.1
Fix: concurrent map read and map write
- There was a write access being made to a map outside a lock. This was sometimes causing an application crash. That access is now made inside a lock;
- Add
-trimpath
to Makefile build command; - Add command to Makefile to run debug the application including the race condition detector.
v1.3.0
v1.2.2
v1.2.1
-
There were too much log.info messages being written as messages were being produced everytime a query was requested. This produces too much log text for a production run log.info call removed were replaced with log.debug so they will still appear if
--verbose
is passed -
Run automatic formatting with go fmt. This is useful so future commits and pull request won't be more polluted than needed by reformatting code
v1.2.0
Implement feature state retention plus more
- Stale retention (optional)
Add new command line option `--rstale-ttl`.
If set to >0, a record will stay in cache for StaleTTl seconds.
If TTL expires and all upstream servers are not available, then
the state record will be served, if it not older than StaleTTL
seconds.
Caveat: If the record in cache is older than StaleTTL, it will still
be served one last time before being removed from cache.
- Only cache non negative (option)
Boolean flag rcache-non-negative, if set, will only allow positive
records to be stored in cache. A positive record is a record whose
client returned with state: NOERROR.
- Fix: EvictRandom was removing all records in cache. Now removed
only one.
- Use TTL from response (option)
Boolean flag rcache-ttl-from-resp, if set, will extract the lowest
TTL from anwsers in response and use that value, for that record,
if value > rcache-tll, which is a min value here; and if
value < rcache-ttl-max, which is max value. If value < rcache-tll,
rcache-tll will be used; if value > rcache-ttl-max, rcache-tll-max
will be used.
- Add rcache-tll-max (option)
See point above.
- Add stats endpoint at http://127.0.0.1:8053
- /ping will ping-pong that stats endpoint
- /stats will return current stats in JSON format
- /dump will dump the current cache table - use with
caution and for debug only as dumping cache can be
expensive
- Optimize stats declaration, with name in map to avoid code
duplication