]>
git.ipfire.org Git - thirdparty/knot-resolver.git/log
Marek Vavruša [Tue, 9 Jun 2015 17:09:05 +0000 (19:09 +0200)]
modules/cachectl: incremental pruning, can clear 64k items in one go
Marek Vavruša [Tue, 9 Jun 2015 17:08:35 +0000 (19:08 +0200)]
lib/cache: cache fixes, use substruct instead of pointer aliasing
fixes potential cache key oob write
Marek Vavruša [Tue, 9 Jun 2015 17:06:35 +0000 (19:06 +0200)]
layer/pktcache: treat all cache insert errors as errors
Marek Vavruša [Tue, 9 Jun 2015 17:06:16 +0000 (19:06 +0200)]
daemon/worker: decommit memory every 1000nth pool delete
Marek Vavruša [Mon, 8 Jun 2015 00:08:18 +0000 (02:08 +0200)]
contrib: ccan/json possible uninitialized use
Marek Vavruša [Mon, 8 Jun 2015 00:03:58 +0000 (02:03 +0200)]
daemon: allocate worker from pool, cleanup
Marek Vavruša [Mon, 8 Jun 2015 00:02:53 +0000 (02:02 +0200)]
tests/test_cache: dladdr is broken for local syms
this relies on a lot of things (intrinsic), frame pointer and symbol dynamic symbol table
Marek Vavruša [Sun, 7 Jun 2015 21:51:42 +0000 (23:51 +0200)]
build: brought back PIC for modules
Marek Vavruša [Sun, 7 Jun 2015 21:49:36 +0000 (23:49 +0200)]
daemon/worker: keep freelist of mempools for recycling
Marek Vavruša [Sun, 7 Jun 2015 21:41:26 +0000 (23:41 +0200)]
Merge branch 'build-changes-q2' into faster-request-proc
Marek Vavruša [Sun, 7 Jun 2015 21:40:09 +0000 (23:40 +0200)]
contrib: use embedded ucw/mempool instead of libknot internals
Marek Vavruša [Sun, 7 Jun 2015 21:39:31 +0000 (23:39 +0200)]
contrib/ucw: use stdlib alloc routines instead of xmalloc/xfree
Marek Vavruša [Sun, 7 Jun 2015 21:14:41 +0000 (23:14 +0200)]
contrib: added mempools from libucw
Marek Vavruša [Sun, 7 Jun 2015 20:48:46 +0000 (22:48 +0200)]
modules/kmemcached: missing documentation, doc cleanup
Marek Vavruša [Sun, 7 Jun 2015 20:48:26 +0000 (22:48 +0200)]
build: renamed libkresolve => libkres, kresolved => kresd
also some cleanup and version bump to Q2
Marek Vavruša [Sun, 7 Jun 2015 20:15:57 +0000 (22:15 +0200)]
build: allow library to be built statically
Marek Vavruša [Sun, 7 Jun 2015 16:03:37 +0000 (18:03 +0200)]
layer/rrcache: rewritten RR merging code
previously a CNAME RR could be merged as a queried type RR, leading to failed cache lookups as ‘expired’
Marek Vavruša [Sun, 7 Jun 2015 12:15:38 +0000 (14:15 +0200)]
layer/*cache: lookup only on first iteration
Marek Vavruša [Sun, 7 Jun 2015 12:15:15 +0000 (14:15 +0200)]
layer/iterate: glue may be in ANSWER, cleanup
Marek Vavruša [Sun, 7 Jun 2015 12:14:38 +0000 (14:14 +0200)]
lib/resolve: do not reelect NS after addr resolution
previously if NS had no A/AAAA records, they we’re looked up in subrequests, after that a new NS was reelected (possibly preferring another unknown), now it stays true to the NS of choice and changes only if it is unuseable
Marek Vavruša [Sun, 7 Jun 2015 12:12:28 +0000 (14:12 +0200)]
lib/cache: return records that are going to be expired next second
Marek Vavruša [Sat, 6 Jun 2015 20:04:24 +0000 (22:04 +0200)]
lib/cache: save cache lookup if record is stale and not missing
the cache_peek() api was reworked to return an error code instead, from this the caller can tell whether the record is present (but expired) or missing. this save a secondary CNAME lookup in case the original record was just expired
Marek Vavruša [Sat, 6 Jun 2015 19:03:26 +0000 (21:03 +0200)]
lib/nsrep: NS reputation cache in addition to RTT cache
this LRU-like cache tracks lame nameservers, unresolvable
nameservers (to not waste resources in trying to resolve them),
and possibly other features (extension support, …)
Marek Vavruša [Fri, 5 Jun 2015 21:04:39 +0000 (23:04 +0200)]
lib/zonecut: prefetch A/AAAA records from cache
Marek Vavruša [Fri, 5 Jun 2015 12:23:35 +0000 (14:23 +0200)]
lib/cache: better handling of TXN_OPEN, cleanup
Marek Vavruša [Fri, 5 Jun 2015 07:30:21 +0000 (09:30 +0200)]
lib/resolve: fix minimized QNAME if zone cut changes
Marek Vavruša [Fri, 5 Jun 2015 15:29:44 +0000 (17:29 +0200)]
tests: improved array test
Marek Vavruša [Fri, 5 Jun 2015 15:29:30 +0000 (17:29 +0200)]
Revert "daemon/worker: ring buffer to recycle mempools"
This reverts commit
91a2945e631b673942ffe62992e03913925a63da .
Conflicts:
daemon/worker.h
Marek Vavruša [Thu, 4 Jun 2015 22:22:39 +0000 (00:22 +0200)]
Merge branch 'ns-rtt-cache'
Marek Vavruša [Thu, 4 Jun 2015 22:22:26 +0000 (00:22 +0200)]
daemon: cleanup
Marek Vavruša [Thu, 4 Jun 2015 22:10:06 +0000 (00:10 +0200)]
Merge branch 'master' into ns-rtt-cache
Marek Vavruša [Thu, 4 Jun 2015 22:06:58 +0000 (00:06 +0200)]
Merge branch 'fix-ns-badboys'
Marek Vavruša [Thu, 4 Jun 2015 22:06:45 +0000 (00:06 +0200)]
Merge branch 'master' into fix-ns-badboys
Marek Vavruša [Thu, 4 Jun 2015 22:05:11 +0000 (00:05 +0200)]
tests: cleanup in lru test
Marek Vavruša [Thu, 4 Jun 2015 21:28:48 +0000 (23:28 +0200)]
generic/array: shot myself to the foot
Marek Vavruša [Thu, 4 Jun 2015 21:27:07 +0000 (23:27 +0200)]
daemon/worker: ring buffer to recycle mempools
this avoids repetitive allocation/free cycles on load
Marek Vavruša [Thu, 4 Jun 2015 20:26:37 +0000 (22:26 +0200)]
tests: added missing lru unit test
Karel Slany [Thu, 4 Jun 2015 14:53:21 +0000 (16:53 +0200)]
Merge branch 'dnssec-integration-test'
Karel Slany [Thu, 4 Jun 2015 14:49:30 +0000 (16:49 +0200)]
tests: converting algorithm identifier to number in DS records in .rpl
The parsing of *.rpl files failed on reading DS records because the
algorithm identifier is a string rather than a number.
Marek Vavruša [Thu, 4 Jun 2015 00:36:17 +0000 (02:36 +0200)]
lib/resolve: faster subrequests zonecut lookup
if a name server is missing address, it requires launching a recursive query to discover it - starting from root
now however it can start from either closest covering zonecut in cache if it isn’t a subdomain of current zone cut, or as a parent of current zone cut
Marek Vavruša [Thu, 4 Jun 2015 00:34:14 +0000 (02:34 +0200)]
tests/integration: added RTT LRU cache to tests
Marek Vavruša [Thu, 4 Jun 2015 00:33:11 +0000 (02:33 +0200)]
lib/nsrep: lower bound on rtt, optional throttling
when a NS is in the TIMEOUT, it can’t be autoselected by default but only probed after a successful dice roll - however in some scenarios we’d like to probe timeouting servers more thoroughly
Marek Vavruša [Wed, 3 Jun 2015 22:42:33 +0000 (00:42 +0200)]
layer/pktcache: fixed shadowed variable, cleanup
Marek Vavruša [Wed, 3 Jun 2015 22:42:06 +0000 (00:42 +0200)]
lib/cache: improve cache materialization
Marek Vavruša [Wed, 3 Jun 2015 22:41:01 +0000 (00:41 +0200)]
layer/iterate: cleanup, use compr hints
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
Grigorii Demidov [Tue, 2 Jun 2015 09:22:51 +0000 (11:22 +0200)]
tests: test_cache with non-global api
Grigorii Demidov [Tue, 2 Jun 2015 09:16:26 +0000 (11:16 +0200)]
tests: avoiding warnings
Grigorii Demidov [Tue, 2 Jun 2015 09:00:47 +0000 (11:00 +0200)]
tests: avoiding warnings
Grigorii Demidov [Tue, 2 Jun 2015 08:43:51 +0000 (10:43 +0200)]
tests: avoiding warnings
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
Grigorii Demidov [Tue, 2 Jun 2015 08:20:07 +0000 (10:20 +0200)]
tests: cache_test with non-global api
Grigorii Demidov [Mon, 1 Jun 2015 10:31:51 +0000 (12:31 +0200)]
Merge branch 'cache-memcached'
Grigorii Demidov [Mon, 1 Jun 2015 10:18:33 +0000 (12:18 +0200)]
tests: test_cache.c conflict fixed
Grigorii Demidov [Mon, 1 Jun 2015 09:47:50 +0000 (11:47 +0200)]
tests: test cache with new api scheme
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)
Grigorii Demidov [Mon, 1 Jun 2015 07:45:51 +0000 (09:45 +0200)]
tests: test cache with new api scheme
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
Grigorii Demidov [Thu, 28 May 2015 08:14:26 +0000 (10:14 +0200)]
tests: empty rrset (insert); empty owner (materialize)
Grigorii Demidov [Thu, 28 May 2015 07:51:50 +0000 (09:51 +0200)]
tests: empty rrset (insert); empty owner (materialize)
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
Grigorii Demidov [Wed, 27 May 2015 14:10:47 +0000 (16:10 +0200)]
Merge branch 'kr_cache_insert_lowmem'
Grigorii Demidov [Wed, 27 May 2015 14:04:11 +0000 (16:04 +0200)]
tests: simulation of malloc() failure
Grigorii Demidov [Wed, 27 May 2015 13:42:58 +0000 (15:42 +0200)]
tests: simulation of malloc() failure