]>
git.ipfire.org Git - thirdparty/knot-resolver.git/log
Marek Vavruša [Wed, 3 Jun 2015 21:03:20 +0000 (23:03 +0200)]
lib/nsrep: 5% chance of probing for timeouted servers
Marek Vavruša [Wed, 3 Jun 2015 21:02:42 +0000 (23:02 +0200)]
layer/iterate: mark answers with SOA proof with AA=1
Marek Vavruša [Wed, 3 Jun 2015 01:08:57 +0000 (03:08 +0200)]
lib: cleanup, lowered default timeout to 3s
Marek Vavruša [Wed, 3 Jun 2015 00:39:13 +0000 (02:39 +0200)]
lib/resolve: impose limits on NS election iterations
Marek Vavruša [Tue, 2 Jun 2015 08:34:38 +0000 (10:34 +0200)]
lib/nsrep: probabilistic NS probing strategy
simplified bee foraging strategy, by default each query goes to the most rewarding NS
however with a chance proportional to the NS RTT, a server may be probed even if it isn’t the most rewarding
Marek Vavruša [Tue, 2 Jun 2015 08:32:00 +0000 (10:32 +0200)]
layer/rrcache: refuse very short TTLs
prevents pointless caching of TTL={0,1} records
Marek Vavruša [Tue, 2 Jun 2015 08:31:30 +0000 (10:31 +0200)]
layer/iterate: ignore glueless-but-mandatory NSs
previously the NS address list was wiped out, this prevents them from being added in the first place
Marek Vavruša [Tue, 2 Jun 2015 08:30:26 +0000 (10:30 +0200)]
layer/iterate: accept REFUSED as an answer
some servers break qname m12n by sending REFUSED, this accepts such answer and requeries with m12n turned off
Marek Vavruša [Mon, 1 Jun 2015 08:50:36 +0000 (10:50 +0200)]
daemon/engine: enable NS reputation cache by default
Marek Vavruša [Mon, 1 Jun 2015 08:50:13 +0000 (10:50 +0200)]
lib/nsrep: persistent NS RTT/reputation tracking
score has now meaning of ‘RTT’, maximum RTT is 10s
which is also the penalty for timeout
unknown servers are favorized as 10ms servers to
encourage resolver to try them out, if they contain
unknown glue they are most favourable
Marek Vavruša [Mon, 1 Jun 2015 08:47:16 +0000 (10:47 +0200)]
generics: added LRU-like lossy hash table
Marek Vavruša [Mon, 1 Jun 2015 08:46:47 +0000 (10:46 +0200)]
contrib: included murmurhash3 (public domain)
Marek Vavruša [Fri, 29 May 2015 21:55:33 +0000 (23:55 +0200)]
layer/iterate: do not presume AA=1 is really authoritative
Marek Vavruša [Fri, 29 May 2015 21:54:45 +0000 (23:54 +0200)]
layer/pktcache: do not take TTLMIN into account
Marek Vavruša [Fri, 29 May 2015 16:25:50 +0000 (18:25 +0200)]
Merge branch 'cache-api-noglobal' into cache-memcached-wip
Marek Vavruša [Fri, 29 May 2015 16:24:34 +0000 (18:24 +0200)]
modules: fixed kmemcached after api change
Marek Vavruša [Fri, 29 May 2015 16:24:18 +0000 (18:24 +0200)]
tests: added test for previous case (bad glue, keep suggesting self)
Marek Vavruša [Fri, 29 May 2015 16:15:41 +0000 (18:15 +0200)]
lib/zonecut: check for duplicate address records
Marek Vavruša [Fri, 29 May 2015 16:15:08 +0000 (18:15 +0200)]
generic/pack: support for lookup
Grigorii Demidov [Fri, 29 May 2015 11:12:47 +0000 (13:12 +0200)]
Merge branch 'cache-api-noglobal-wip' of gitlab.labs.nic.cz:knot/resolver into cache-api-noglobal-wip
Grigorii Demidov [Fri, 29 May 2015 11:12:17 +0000 (13:12 +0200)]
lib\cache: removing of global instance of cache storage api
Marek Vavruša [Fri, 29 May 2015 00:54:38 +0000 (02:54 +0200)]
lib/pktcache: cache intermediate answers as well
the only condition of caching an answer is that it resolves a query and is not already cached
(ok, it must be negative at this point…)
Marek Vavruša [Fri, 29 May 2015 00:53:42 +0000 (02:53 +0200)]
layer/pktcache: fixed max-ttl for packet cache
Marek Vavruša [Fri, 29 May 2015 00:33:01 +0000 (02:33 +0200)]
layer/iterate: ignore bad NS, don’t fail the packet
if an authoritative answer comes and the server responds correctly, but appends out-of-bailiwick NS records, ignore them but resolve the query
Marek Vavruša [Thu, 28 May 2015 23:46:08 +0000 (01:46 +0200)]
lib/iterate: check bad answers missing question
Marek Vavruša [Thu, 28 May 2015 23:26:08 +0000 (01:26 +0200)]
lib/resolve: faster valid NS election
previously it restarted query production for each NS, now it loops until it finds a suitor or bails out
Marek Vavruša [Thu, 28 May 2015 23:22:22 +0000 (01:22 +0200)]
lib/iterate: fixed check for mandatory glue + test
Marek Vavruša [Thu, 28 May 2015 23:23:25 +0000 (01:23 +0200)]
lib/pktcache: mark cached respones as authoritative
this fixes a bug when storing NODATA without SOA,NS or any other ‘authoritative answer’ hint
Marek Vavruša [Thu, 28 May 2015 16:16:12 +0000 (18:16 +0200)]
lib/resolve: invalidate NS than query on loops/failures
Marek Vavruša [Thu, 28 May 2015 15:28:15 +0000 (17:28 +0200)]
modules/stats: fixed yolo counting of edns/dnssec
Marek Vavruša [Thu, 28 May 2015 15:25:33 +0000 (17:25 +0200)]
modules/stats: don't track 'unresolved' when 'servfail' does the same thing
Marek Vavruša [Thu, 28 May 2015 15:07:51 +0000 (17:07 +0200)]
modules/stats: count slow answers (>1000ms)
Marek Vavruša [Thu, 28 May 2015 11:57:10 +0000 (13:57 +0200)]
lib/cache: track inserts
Marek Vavruša [Wed, 27 May 2015 23:43:25 +0000 (01:43 +0200)]
build: support versioned dependencies
Marek Vavruša [Wed, 27 May 2015 23:26:07 +0000 (01:26 +0200)]
lib/caches: lookup direct matches only
since the zone cut is looked up after layers now, it
is pointless to search for minimized names from cache,
since this is the same operation as searching for a zone cut
Marek Vavruša [Wed, 27 May 2015 23:23:47 +0000 (01:23 +0200)]
lib/resolve: deferred zone cut lookup
if the query is satisfied from cache, it doesn’t need a zone cut lookup, so it may be deferred until an outbound query is about the be issued.
Marek Vavruša [Wed, 27 May 2015 23:18:29 +0000 (01:18 +0200)]
layer/iterate: fixed ‘current query’ change, accept in-bailiwick ns
since the next CNAME target query was added on top, it replaced
the original ‘current query’, this caused recaching of an answer
if it came from cache (as the query flags have changed)
Marek Vavruša [Wed, 27 May 2015 17:28:52 +0000 (19:28 +0200)]
modules/kmemcached: fixed broken api
Marek Vavruša [Wed, 27 May 2015 17:27:12 +0000 (19:27 +0200)]
modules/graphite: track cache statistics as well
Marek Vavruša [Wed, 27 May 2015 17:26:59 +0000 (19:26 +0200)]
daemon/bindings: added cache.stats() interface
Marek Vavruša [Wed, 27 May 2015 17:25:04 +0000 (19:25 +0200)]
cache: wrapped namedb_t+txn into structure, counters
this prepares cache/txn structures to hold API as well, so we can get
rid of the global api
Marek Vavruša [Tue, 26 May 2015 23:28:49 +0000 (01:28 +0200)]
modules/kmemcached: fixed memleak
Marek Vavruša [Tue, 26 May 2015 22:52:20 +0000 (00:52 +0200)]
modules/lua: cleanup
Marek Vavruša [Tue, 26 May 2015 22:49:07 +0000 (00:49 +0200)]
daemon/engine: close cache before closing modules
this fixes a problem when module is unloaded at runtime
and active
Marek Vavruša [Tue, 26 May 2015 22:51:14 +0000 (00:51 +0200)]
daemon/bindings: metatable wasn’t called on cache.{storage|size}
the bindings wrote the keys on completion, so they existed
and __newindex was never called - now current {storage|size}
are saved as cache.current_{storage|size}
Marek Vavruša [Tue, 26 May 2015 07:37:22 +0000 (09:37 +0200)]
modules/kmemcached: memcached backend for resolver cache
memcached is a distributed caching system, it is a good fit
for building resolvers with shared and replicated cache
Marek Vavruša [Mon, 25 May 2015 13:54:26 +0000 (15:54 +0200)]
daemon/engine: compat for Lua < 5.2
Marek Vavruša [Mon, 25 May 2015 12:26:31 +0000 (14:26 +0200)]
modules/stats: compat for Lua < 5.2
Marek Vavruša [Mon, 25 May 2015 11:36:51 +0000 (13:36 +0200)]
tests: fixed integration tests
Marek Vavruša [Mon, 25 May 2015 11:26:12 +0000 (13:26 +0200)]
doc: updated doc for new modules
Marek Vavruša [Mon, 25 May 2015 10:19:30 +0000 (12:19 +0200)]
scripts: bootstrap lua with dlopen
Marek Vavruša [Mon, 25 May 2015 10:19:14 +0000 (12:19 +0200)]
modules/graphite: fixed missing prefix
Marek Vavruša [Mon, 25 May 2015 10:15:05 +0000 (12:15 +0200)]
daemon/bindings: fixed event callback not clearing the stack
Marek Vavruša [Sun, 24 May 2015 21:29:01 +0000 (23:29 +0200)]
modules: fixed module unload touching freed memory
the module memory not be moved (reallocd), turned array of modules to array of pointers to modules
Marek Vavruša [Sun, 24 May 2015 21:05:27 +0000 (23:05 +0200)]
modules/graphite: push metrics to graphite server(s)
Marek Vavruša [Sun, 24 May 2015 21:04:38 +0000 (23:04 +0200)]
stats: use json objects for output
Marek Vavruša [Sun, 24 May 2015 21:04:21 +0000 (23:04 +0200)]
modules/hints: use json arrays for output
Marek Vavruša [Sun, 24 May 2015 21:03:43 +0000 (23:03 +0200)]
daemon/engine: unpack JSON strings from modules to Lua tables
Marek Vavruša [Sun, 24 May 2015 20:57:46 +0000 (22:57 +0200)]
contrib: added ccan/json (BSD-MIT)
Marek Vavruša [Sun, 24 May 2015 20:56:47 +0000 (22:56 +0200)]
build: bootstrap-depends.sh appends to PKG_CONFIG_PATH
Marek Vavruša [Thu, 21 May 2015 17:55:54 +0000 (19:55 +0200)]
modules/stats: updated doc on statistics
Marek Vavruša [Thu, 21 May 2015 17:51:12 +0000 (19:51 +0200)]
lib/resolve: set rcode before finishing overlay
this fixes a bug where resolution failed, but the finish callbacks thought the answer is noerror
Marek Vavruša [Thu, 21 May 2015 17:50:32 +0000 (19:50 +0200)]
lib/generic: replace value on map insert if exists
Marek Vavruša [Wed, 20 May 2015 15:07:20 +0000 (17:07 +0200)]
module/stats: collect various metrics for statistics
this hooks into query resolution and collects counters on answers, queries and iterator
Marek Vavruša [Fri, 22 May 2015 14:58:13 +0000 (16:58 +0200)]
build: rebased Dockerfile to AlpineLinux
Marek Vavruša [Fri, 22 May 2015 14:57:56 +0000 (16:57 +0200)]
lib: fixed include
Marek Vavruša [Fri, 22 May 2015 13:59:23 +0000 (15:59 +0200)]
build: git clone fails with commit hashes
Marek Vavruša [Fri, 22 May 2015 13:43:31 +0000 (15:43 +0200)]
build: pin to last working version of libknot
Marek Vavruša [Thu, 21 May 2015 16:30:55 +0000 (18:30 +0200)]
daemon/worker: uv_connect_t lifetime max exceed qr_task
Marek Vavruša [Wed, 20 May 2015 13:33:48 +0000 (15:33 +0200)]
Merge branch 'prefer-ipv6-nsrep'
Marek Vavruša [Wed, 20 May 2015 12:24:55 +0000 (14:24 +0200)]
lib/utils: made mm_reserve generic in library
Marek Vavruša [Wed, 20 May 2015 11:05:59 +0000 (13:05 +0200)]
daemon/ffimodule: fixed variable shadowing
Marek Vavruša [Wed, 20 May 2015 10:36:33 +0000 (12:36 +0200)]
lib/zonecut: resolve zone cut addresses on-demand
Marek Vavruša [Tue, 19 May 2015 21:57:06 +0000 (23:57 +0200)]
daemon/worker: estimate pktbuf sizes for tasks
Marek Vavruša [Tue, 19 May 2015 21:56:44 +0000 (23:56 +0200)]
lib/zonecut: use mempool for nsset pack
Marek Vavruša [Tue, 19 May 2015 20:58:24 +0000 (22:58 +0200)]
daemon/worker: enforce iteration limit for cached answers
Marek Vavruša [Tue, 19 May 2015 17:07:56 +0000 (19:07 +0200)]
lib/resolve: resolve AAAA first, A second
Marek Vavruša [Tue, 19 May 2015 17:07:39 +0000 (19:07 +0200)]
lib/rrcache: break caching if target already exists (catches loops)
Marek Vavruša [Tue, 19 May 2015 20:54:52 +0000 (22:54 +0200)]
Revert "build: link symbols as needed"
This reverts commit
3f4d8cbe1a57d27243eff61356751b54d9d1f933 .
Marek Vavruša [Tue, 19 May 2015 16:02:00 +0000 (18:02 +0200)]
Merge branch 'connect-timeout-cleanup'
Marek Vavruša [Tue, 19 May 2015 15:54:38 +0000 (17:54 +0200)]
lib/rrcache: mark cached answers as authoritative
Marek Vavruša [Tue, 19 May 2015 15:43:44 +0000 (17:43 +0200)]
docker: link with --as-needed
Marek Vavruša [Tue, 19 May 2015 15:39:07 +0000 (17:39 +0200)]
lib/layer: lookup unminimised answer in the cache first
this fixes a regression when a final name has a dependency with a short
TTL in the search path, but has longer TTL itself
in another words - if there's a CDN in the middle and the name doesn't
exist, answer it from the cache without requerying the CDN
Marek Vavruša [Tue, 19 May 2015 12:54:14 +0000 (14:54 +0200)]
daemon/io: cleanup for connect, always stop read on close
Marek Vavruša [Tue, 19 May 2015 12:24:01 +0000 (14:24 +0200)]
build: link symbols as needed
this saves space for both library and daemon
Grigorii Demidov [Tue, 19 May 2015 09:43:52 +0000 (11:43 +0200)]
tests: avoiding compiler warnings
Marek Vavruša [Mon, 18 May 2015 19:14:12 +0000 (21:14 +0200)]
doc: improved Lua modules doc
Marek Vavruša [Mon, 18 May 2015 19:02:58 +0000 (21:02 +0200)]
scripts: embed/minify scripts in C code
Marek Vavruša [Mon, 18 May 2015 18:19:08 +0000 (20:19 +0200)]
build: added bsdmaintools to dockerfile
Marek Vavruša [Mon, 18 May 2015 17:49:07 +0000 (19:49 +0200)]
build: use hexdump instead of xxd, optional libdl
Marek Vavruša [Sat, 16 May 2015 16:06:15 +0000 (18:06 +0200)]
daemon/lua: bad multiplier for GB
Marek Vavruša [Fri, 15 May 2015 10:30:18 +0000 (12:30 +0200)]
modules/lua: module API functions may return coroutines
this allows for continuation of a function in the background,
a good use case for this is loading of chunks of data or I/O
Grigorii Demidov [Mon, 18 May 2015 12:21:14 +0000 (14:21 +0200)]
tests: modification of cache insertion test
Grigorii Demidov [Fri, 15 May 2015 09:20:52 +0000 (11:20 +0200)]
tests: simulation of cache storage engine commit failure
Grigorii Demidov [Fri, 15 May 2015 06:27:56 +0000 (08:27 +0200)]
tests: simulation of cache storage engine initialization failure at kr_cache_open()
Marek Vavruša [Thu, 14 May 2015 12:01:33 +0000 (14:01 +0200)]
scripts: no debug in Dockerfile, /data and luajit
Marek Vavruša [Wed, 13 May 2015 14:10:22 +0000 (16:10 +0200)]
modules/hints: don't minimize, replace full queries
Marek Vavruša [Wed, 13 May 2015 10:16:37 +0000 (12:16 +0200)]
Revert "lib/layer: answer both m12n/full names from cache"
This reverts commit
3d1ee64186c8f29c98df143b992660dfd95d4805 .
Marek Vavruša [Wed, 13 May 2015 10:16:32 +0000 (12:16 +0200)]
Revert "lib/iterate: pair stype/m12n stype as well"
This reverts commit
ee2cce4d56d66f183ef48feb232e4fe37eb090cf .
Marek Vavruša [Wed, 13 May 2015 10:04:58 +0000 (12:04 +0200)]
lib/iterate: pair stype/m12n stype as well