]> git.ipfire.org Git - thirdparty/knot-resolver.git/log
thirdparty/knot-resolver.git
11 years agodaemon/worker: ring buffer to recycle mempools
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

11 years agotests: added missing lru unit test
Marek Vavruša [Thu, 4 Jun 2015 20:26:37 +0000 (22:26 +0200)] 
tests: added missing lru unit test

11 years agoMerge branch 'dnssec-integration-test'
Karel Slany [Thu, 4 Jun 2015 14:53:21 +0000 (16:53 +0200)] 
Merge branch 'dnssec-integration-test'

11 years agotests: converting algorithm identifier to number in DS records in .rpl
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.

11 years agolib/resolve: faster subrequests zonecut lookup
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

11 years agotests/integration: added RTT LRU cache to tests
Marek Vavruša [Thu, 4 Jun 2015 00:34:14 +0000 (02:34 +0200)] 
tests/integration: added RTT LRU cache to tests

11 years agolib/nsrep: lower bound on rtt, optional throttling
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

11 years agolayer/pktcache: fixed shadowed variable, cleanup
Marek Vavruša [Wed, 3 Jun 2015 22:42:33 +0000 (00:42 +0200)] 
layer/pktcache: fixed shadowed variable, cleanup

11 years agolib/cache: improve cache materialization
Marek Vavruša [Wed, 3 Jun 2015 22:42:06 +0000 (00:42 +0200)] 
lib/cache: improve cache materialization

11 years agolayer/iterate: cleanup, use compr hints
Marek Vavruša [Wed, 3 Jun 2015 22:41:01 +0000 (00:41 +0200)] 
layer/iterate: cleanup, use compr hints

11 years agolib/nsrep: 5% chance of probing for timeouted servers
Marek Vavruša [Wed, 3 Jun 2015 21:03:20 +0000 (23:03 +0200)] 
lib/nsrep: 5% chance of probing for timeouted servers

11 years agolayer/iterate: mark answers with SOA proof with AA=1
Marek Vavruša [Wed, 3 Jun 2015 21:02:42 +0000 (23:02 +0200)] 
layer/iterate: mark answers with SOA proof with AA=1

11 years agolib: cleanup, lowered default timeout to 3s
Marek Vavruša [Wed, 3 Jun 2015 01:08:57 +0000 (03:08 +0200)] 
lib: cleanup, lowered default timeout to 3s

11 years agolib/resolve: impose limits on NS election iterations
Marek Vavruša [Wed, 3 Jun 2015 00:39:13 +0000 (02:39 +0200)] 
lib/resolve: impose limits on NS election iterations

11 years agolib/nsrep: probabilistic NS probing strategy
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

11 years agotests: test_cache with non-global api
Grigorii Demidov [Tue, 2 Jun 2015 09:22:51 +0000 (11:22 +0200)] 
tests: test_cache with non-global api

11 years agotests: avoiding warnings
Grigorii Demidov [Tue, 2 Jun 2015 09:16:26 +0000 (11:16 +0200)] 
tests: avoiding warnings

11 years agotests: avoiding warnings
Grigorii Demidov [Tue, 2 Jun 2015 09:00:47 +0000 (11:00 +0200)] 
tests: avoiding warnings

11 years agotests: avoiding warnings
Grigorii Demidov [Tue, 2 Jun 2015 08:43:51 +0000 (10:43 +0200)] 
tests: avoiding warnings

11 years agolayer/rrcache: refuse very short TTLs
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

11 years agolayer/iterate: ignore glueless-but-mandatory NSs
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

11 years agolayer/iterate: accept REFUSED as an answer
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

11 years agodaemon/engine: enable NS reputation cache by default
Marek Vavruša [Mon, 1 Jun 2015 08:50:36 +0000 (10:50 +0200)] 
daemon/engine: enable NS reputation cache by default

11 years agotests: cache_test with non-global api
Grigorii Demidov [Tue, 2 Jun 2015 08:20:07 +0000 (10:20 +0200)] 
tests: cache_test with non-global api

11 years agoMerge branch 'cache-memcached'
Grigorii Demidov [Mon, 1 Jun 2015 10:31:51 +0000 (12:31 +0200)] 
Merge branch 'cache-memcached'

11 years agotests: test_cache.c conflict fixed
Grigorii Demidov [Mon, 1 Jun 2015 10:18:33 +0000 (12:18 +0200)] 
tests: test_cache.c conflict fixed

11 years agotests: test cache with new api scheme
Grigorii Demidov [Mon, 1 Jun 2015 09:47:50 +0000 (11:47 +0200)] 
tests: test cache with new api scheme

11 years agolib/nsrep: persistent NS RTT/reputation tracking
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

11 years agogenerics: added LRU-like lossy hash table
Marek Vavruša [Mon, 1 Jun 2015 08:47:16 +0000 (10:47 +0200)] 
generics: added LRU-like lossy hash table

11 years agocontrib: included murmurhash3 (public domain)
Marek Vavruša [Mon, 1 Jun 2015 08:46:47 +0000 (10:46 +0200)] 
contrib: included murmurhash3 (public domain)

11 years agotests: test cache with new api scheme
Grigorii Demidov [Mon, 1 Jun 2015 07:45:51 +0000 (09:45 +0200)] 
tests: test cache with new api scheme

11 years agolayer/iterate: do not presume AA=1 is really authoritative
Marek Vavruša [Fri, 29 May 2015 21:55:33 +0000 (23:55 +0200)] 
layer/iterate: do not presume AA=1 is really authoritative

11 years agolayer/pktcache: do not take TTLMIN into account
Marek Vavruša [Fri, 29 May 2015 21:54:45 +0000 (23:54 +0200)] 
layer/pktcache: do not take TTLMIN into account

11 years agoMerge branch 'cache-api-noglobal' into cache-memcached-wip
Marek Vavruša [Fri, 29 May 2015 16:25:50 +0000 (18:25 +0200)] 
Merge branch 'cache-api-noglobal' into cache-memcached-wip

11 years agomodules: fixed kmemcached after api change
Marek Vavruša [Fri, 29 May 2015 16:24:34 +0000 (18:24 +0200)] 
modules: fixed kmemcached after api change

11 years agotests: added test for previous case (bad glue, keep suggesting self)
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)

11 years agolib/zonecut: check for duplicate address records
Marek Vavruša [Fri, 29 May 2015 16:15:41 +0000 (18:15 +0200)] 
lib/zonecut: check for duplicate address records

11 years agogeneric/pack: support for lookup
Marek Vavruša [Fri, 29 May 2015 16:15:08 +0000 (18:15 +0200)] 
generic/pack: support for lookup

11 years agoMerge branch 'cache-api-noglobal-wip' of gitlab.labs.nic.cz:knot/resolver into cache...
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

11 years agolib\cache: removing of global instance of cache storage api
Grigorii Demidov [Fri, 29 May 2015 11:12:17 +0000 (13:12 +0200)] 
lib\cache: removing of global instance of cache storage api

11 years agolib/pktcache: cache intermediate answers as well
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…)

11 years agolayer/pktcache: fixed max-ttl for packet cache
Marek Vavruša [Fri, 29 May 2015 00:53:42 +0000 (02:53 +0200)] 
layer/pktcache: fixed max-ttl for packet cache

11 years agolayer/iterate: ignore bad NS, don’t fail the packet
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

11 years agolib/iterate: check bad answers missing question
Marek Vavruša [Thu, 28 May 2015 23:46:08 +0000 (01:46 +0200)] 
lib/iterate: check bad answers missing question

11 years agolib/resolve: faster valid NS election
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

11 years agolib/iterate: fixed check for mandatory glue + test
Marek Vavruša [Thu, 28 May 2015 23:22:22 +0000 (01:22 +0200)] 
lib/iterate: fixed check for mandatory glue + test

11 years agolib/pktcache: mark cached respones as authoritative
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

11 years agolib/resolve: invalidate NS than query on loops/failures
Marek Vavruša [Thu, 28 May 2015 16:16:12 +0000 (18:16 +0200)] 
lib/resolve: invalidate NS than query on loops/failures

11 years agomodules/stats: fixed yolo counting of edns/dnssec
Marek Vavruša [Thu, 28 May 2015 15:28:15 +0000 (17:28 +0200)] 
modules/stats: fixed yolo counting of edns/dnssec

11 years agomodules/stats: don't track 'unresolved' when 'servfail' does the same thing
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

11 years agomodules/stats: count slow answers (>1000ms)
Marek Vavruša [Thu, 28 May 2015 15:07:51 +0000 (17:07 +0200)] 
modules/stats: count slow answers (>1000ms)

11 years agolib/cache: track inserts
Marek Vavruša [Thu, 28 May 2015 11:57:10 +0000 (13:57 +0200)] 
lib/cache: track inserts

11 years agotests: empty rrset (insert); empty owner (materialize)
Grigorii Demidov [Thu, 28 May 2015 08:14:26 +0000 (10:14 +0200)] 
tests: empty rrset (insert); empty owner (materialize)

11 years agotests: 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)

11 years agobuild: support versioned dependencies
Marek Vavruša [Wed, 27 May 2015 23:43:25 +0000 (01:43 +0200)] 
build: support versioned dependencies

11 years agolib/caches: lookup direct matches only
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

11 years agolib/resolve: deferred zone cut lookup
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.

11 years agolayer/iterate: fixed ‘current query’ change, accept in-bailiwick ns
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)

11 years agomodules/kmemcached: fixed broken api
Marek Vavruša [Wed, 27 May 2015 17:28:52 +0000 (19:28 +0200)] 
modules/kmemcached: fixed broken api

11 years agomodules/graphite: track cache statistics as well
Marek Vavruša [Wed, 27 May 2015 17:27:12 +0000 (19:27 +0200)] 
modules/graphite: track cache statistics as well

11 years agodaemon/bindings: added cache.stats() interface
Marek Vavruša [Wed, 27 May 2015 17:26:59 +0000 (19:26 +0200)] 
daemon/bindings: added cache.stats() interface

11 years agocache: wrapped namedb_t+txn into structure, counters
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

11 years agoMerge branch 'kr_cache_insert_lowmem'
Grigorii Demidov [Wed, 27 May 2015 14:10:47 +0000 (16:10 +0200)] 
Merge branch 'kr_cache_insert_lowmem'

11 years agotests: simulation of malloc() failure
Grigorii Demidov [Wed, 27 May 2015 14:04:11 +0000 (16:04 +0200)] 
tests: simulation of malloc() failure

11 years agotests: simulation of malloc() failure
Grigorii Demidov [Wed, 27 May 2015 13:42:58 +0000 (15:42 +0200)] 
tests: simulation of malloc() failure

11 years agomodules/kmemcached: fixed memleak
Marek Vavruša [Tue, 26 May 2015 23:28:49 +0000 (01:28 +0200)] 
modules/kmemcached: fixed memleak

11 years agomodules/lua: cleanup
Marek Vavruša [Tue, 26 May 2015 22:52:20 +0000 (00:52 +0200)] 
modules/lua: cleanup

11 years agodaemon/engine: close cache before closing modules
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

11 years agodaemon/bindings: metatable wasn’t called on cache.{storage|size}
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}

11 years agomodules/kmemcached: memcached backend for resolver cache
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

11 years agotests: kr_cache_materialize() test
Grigorii Demidov [Tue, 26 May 2015 08:31:52 +0000 (10:31 +0200)] 
tests: kr_cache_materialize() test

11 years agodaemon/engine: compat for Lua < 5.2
Marek Vavruša [Mon, 25 May 2015 13:54:26 +0000 (15:54 +0200)] 
daemon/engine: compat for Lua < 5.2

11 years agomodules/stats: 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

11 years agotests: fixed integration tests
Marek Vavruša [Mon, 25 May 2015 11:36:51 +0000 (13:36 +0200)] 
tests: fixed integration tests

11 years agodoc: updated doc for new modules
Marek Vavruša [Mon, 25 May 2015 11:26:12 +0000 (13:26 +0200)] 
doc: updated doc for new modules

11 years agoscripts: bootstrap lua with dlopen
Marek Vavruša [Mon, 25 May 2015 10:19:30 +0000 (12:19 +0200)] 
scripts: bootstrap lua with dlopen

11 years agomodules/graphite: fixed missing prefix
Marek Vavruša [Mon, 25 May 2015 10:19:14 +0000 (12:19 +0200)] 
modules/graphite: fixed missing prefix

11 years agodaemon/bindings: fixed event callback not clearing the stack
Marek Vavruša [Mon, 25 May 2015 10:15:05 +0000 (12:15 +0200)] 
daemon/bindings: fixed event callback not clearing the stack

11 years agomodules: fixed module unload touching freed memory
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

11 years agomodules/graphite: push metrics to graphite server(s)
Marek Vavruša [Sun, 24 May 2015 21:05:27 +0000 (23:05 +0200)] 
modules/graphite: push metrics to graphite server(s)

11 years agostats: use json objects for output
Marek Vavruša [Sun, 24 May 2015 21:04:38 +0000 (23:04 +0200)] 
stats: use json objects for output

11 years agomodules/hints: use json arrays for output
Marek Vavruša [Sun, 24 May 2015 21:04:21 +0000 (23:04 +0200)] 
modules/hints: use json arrays for output

11 years agodaemon/engine: unpack JSON strings from modules to Lua tables
Marek Vavruša [Sun, 24 May 2015 21:03:43 +0000 (23:03 +0200)] 
daemon/engine: unpack JSON strings from modules to Lua tables

11 years agocontrib: added ccan/json (BSD-MIT)
Marek Vavruša [Sun, 24 May 2015 20:57:46 +0000 (22:57 +0200)] 
contrib: added ccan/json (BSD-MIT)

11 years agobuild: bootstrap-depends.sh appends to PKG_CONFIG_PATH
Marek Vavruša [Sun, 24 May 2015 20:56:47 +0000 (22:56 +0200)] 
build: bootstrap-depends.sh appends to PKG_CONFIG_PATH

11 years agomodules/stats: updated doc on statistics
Marek Vavruša [Thu, 21 May 2015 17:55:54 +0000 (19:55 +0200)] 
modules/stats: updated doc on statistics

11 years agolib/resolve: set rcode before finishing overlay
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

11 years agolib/generic: replace value on map insert if exists
Marek Vavruša [Thu, 21 May 2015 17:50:32 +0000 (19:50 +0200)] 
lib/generic: replace value on map insert if exists

11 years agomodule/stats: collect various metrics for statistics
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

11 years agobuild: rebased Dockerfile to AlpineLinux
Marek Vavruša [Fri, 22 May 2015 14:58:13 +0000 (16:58 +0200)] 
build: rebased Dockerfile to AlpineLinux

11 years agolib: fixed include
Marek Vavruša [Fri, 22 May 2015 14:57:56 +0000 (16:57 +0200)] 
lib: fixed include

11 years agobuild: git clone fails with commit hashes
Marek Vavruša [Fri, 22 May 2015 13:59:23 +0000 (15:59 +0200)] 
build: git clone fails with commit hashes

11 years agobuild: pin to last working version of libknot
Marek Vavruša [Fri, 22 May 2015 13:43:31 +0000 (15:43 +0200)] 
build: pin to last working version of libknot

11 years agodaemon/worker: uv_connect_t lifetime max exceed qr_task
Marek Vavruša [Thu, 21 May 2015 16:30:55 +0000 (18:30 +0200)] 
daemon/worker: uv_connect_t lifetime max exceed qr_task

11 years agoMerge branch 'prefer-ipv6-nsrep'
Marek Vavruša [Wed, 20 May 2015 13:33:48 +0000 (15:33 +0200)] 
Merge branch 'prefer-ipv6-nsrep'

11 years agolib/utils: made mm_reserve generic in library
Marek Vavruša [Wed, 20 May 2015 12:24:55 +0000 (14:24 +0200)] 
lib/utils: made mm_reserve generic in library

11 years agodaemon/ffimodule: fixed variable shadowing
Marek Vavruša [Wed, 20 May 2015 11:05:59 +0000 (13:05 +0200)] 
daemon/ffimodule: fixed variable shadowing

11 years agolib/zonecut: resolve zone cut addresses on-demand
Marek Vavruša [Wed, 20 May 2015 10:36:33 +0000 (12:36 +0200)] 
lib/zonecut: resolve zone cut addresses on-demand

11 years agodaemon/worker: estimate pktbuf sizes for tasks
Marek Vavruša [Tue, 19 May 2015 21:57:06 +0000 (23:57 +0200)] 
daemon/worker: estimate pktbuf sizes for tasks

11 years agolib/zonecut: use mempool for nsset pack
Marek Vavruša [Tue, 19 May 2015 21:56:44 +0000 (23:56 +0200)] 
lib/zonecut: use mempool for nsset pack