]> git.ipfire.org Git - thirdparty/knot-resolver.git/log
thirdparty/knot-resolver.git
10 years agodaemon/ffimodule: support for Lua modules (including layers)
Marek Vavruša [Thu, 7 May 2015 08:35:53 +0000 (10:35 +0200)] 
daemon/ffimodule: support for Lua modules (including layers)

10 years agobuild: modules/lua, added clean rule
Marek Vavruša [Thu, 7 May 2015 08:35:09 +0000 (10:35 +0200)] 
build: modules/lua, added clean rule

10 years agodaemon/engine: support for Lua modules, stub etcd module
Marek Vavruša [Wed, 6 May 2015 08:28:21 +0000 (10:28 +0200)] 
daemon/engine: support for Lua modules, stub etcd module

10 years agolib/modules: layer() api now accept module name
Marek Vavruša [Wed, 6 May 2015 08:27:47 +0000 (10:27 +0200)] 
lib/modules: layer() api now accept module name

module api can now store userdata, e.g. owner

10 years agodaemon/bindings: cleanup in formatting
Marek Vavruša [Wed, 6 May 2015 08:26:50 +0000 (10:26 +0200)] 
daemon/bindings: cleanup in formatting

10 years agobuild: slack integration
Marek Vavruša [Tue, 5 May 2015 21:35:34 +0000 (23:35 +0200)] 
build: slack integration

10 years agolib: write debug to stdout (buffered)
Marek Vavruša [Tue, 5 May 2015 21:30:19 +0000 (23:30 +0200)] 
lib: write debug to stdout (buffered)

10 years agodaemon/io: fixed corrupted handles with exhausted TCP clients
Marek Vavruša [Tue, 5 May 2015 21:21:49 +0000 (23:21 +0200)] 
daemon/io: fixed corrupted handles with exhausted TCP clients

the TCP allowed parallel processing of multiple requests over
one client socket, however if the client socket disconnected,
it left the running tasks reading from bad handle
now each task takes ownership of the handle until it is finished,
only then it is returned to the loop and closed

10 years agolib/resolve: fixed nested NS dependency chains
Marek Vavruša [Tue, 5 May 2015 18:34:49 +0000 (20:34 +0200)] 
lib/resolve: fixed nested NS dependency chains

10 years agolib/resolve: response marked as resolved too early
Marek Vavruša [Mon, 4 May 2015 08:31:46 +0000 (10:31 +0200)] 
lib/resolve: response marked as resolved too early

10 years agobuild: experimental slack integration
Marek Vavruša [Mon, 4 May 2015 12:28:13 +0000 (14:28 +0200)] 
build: experimental slack integration

10 years agoMerge branch 'cache-backends'
Marek Vavruša [Sun, 3 May 2015 19:16:49 +0000 (21:16 +0200)] 
Merge branch 'cache-backends'

10 years agodoc: updated documentation for cache backends
Marek Vavruša [Sun, 3 May 2015 19:16:29 +0000 (21:16 +0200)] 
doc: updated documentation for cache backends

10 years agodaemon: added cache.backends() binding
Marek Vavruša [Sun, 3 May 2015 19:16:15 +0000 (21:16 +0200)] 
daemon: added cache.backends() binding

10 years agolib/rrcache: renamed itercache to rrcache
Marek Vavruša [Sun, 3 May 2015 18:28:51 +0000 (20:28 +0200)] 
lib/rrcache: renamed itercache to rrcache

10 years agolib/pktcache: packet cache (used for caching negative responses)
Marek Vavruša [Sun, 3 May 2015 18:23:51 +0000 (20:23 +0200)] 
lib/pktcache: packet cache (used for caching negative responses)

the pktcache introduces two cache tags PKT/SEC for
basic/DNSSEC responses and stores negative answers in
the cache

10 years agolib/resolve: produce() layers can generate answer, not just query
Marek Vavruša [Sun, 3 May 2015 18:21:17 +0000 (20:21 +0200)] 
lib/resolve: produce() layers can generate answer, not just query

previously producers in overlay could only generate query or
update the final answer - this required exported callbacks
from iterate.c and specific processing. this wouldn’t work
for negative cache, as it would be required to reimplement
whole iterate layer for cached data

the new workflow allows produce layers to generate answer
instead, this answer is then consumed in the next step
by the iterate module in unified fashion for all caches/generators

10 years agolib/iterate: accept other in-bailiwick data to answer
Marek Vavruša [Sun, 3 May 2015 18:14:04 +0000 (20:14 +0200)] 
lib/iterate: accept other in-bailiwick data to answer

this fixes stripped DNSSEC records in final answer

10 years agolib/resolve: correct edns0 handling for clients
Marek Vavruša [Sun, 3 May 2015 18:12:26 +0000 (20:12 +0200)] 
lib/resolve: correct edns0 handling for clients

the server responds with edns0 if the client requests it,
it also uses DNSSEC for queries if DO=1

the obtained records are not however validated

10 years agolib/resolve: increased buflen to accomodate edns0/dnssec
Marek Vavruša [Sun, 3 May 2015 18:08:37 +0000 (20:08 +0200)] 
lib/resolve: increased buflen to accomodate edns0/dnssec

10 years agodaemon/engine: extensible registry of cache backends
Marek Vavruša [Fri, 1 May 2015 15:51:09 +0000 (17:51 +0200)] 
daemon/engine: extensible registry of cache backends

the engine keeps an array of storage backends available
for caching, it is possible to switch the backend on
runtime with standard ‘proto://config' string

the default backend is ‘lmdb://<path>’

10 years agolib/cache: open with generic storage options
Marek Vavruša [Fri, 1 May 2015 15:49:05 +0000 (17:49 +0200)] 
lib/cache: open with generic storage options

the api is still a global variable, but it would be the
best if the namedb_t carried the pointer to the api,
so it needs to change in libknot later

10 years agolib/cache: relaxed API to allow other assets than RR
Marek Vavruša [Fri, 1 May 2015 00:20:46 +0000 (02:20 +0200)] 
lib/cache: relaxed API to allow other assets than RR

each asset is tagged by a byte defining its type and importance
this is a groundwork for negative cache and packet cache
abstracted the code in preparation for different backends

10 years agoMerge branch 'fix-edns0-badimpl'
Marek Vavruša [Sat, 2 May 2015 14:36:45 +0000 (16:36 +0200)] 
Merge branch 'fix-edns0-badimpl'

10 years agodaemon/worker: close all handles in worker, pass through errors
Marek Vavruša [Sat, 2 May 2015 14:36:33 +0000 (16:36 +0200)] 
daemon/worker: close all handles in worker, pass through errors

do all socket closing in worker to avoid double closes with
timeout timer, also propagate bad messages to discover errors
earlier than timeout

10 years agolib: revert to rfc1035 basic dns query on bad reply
Marek Vavruša [Sat, 2 May 2015 14:32:30 +0000 (16:32 +0200)] 
lib: revert to rfc1035 basic dns query on bad reply

if the server doesn’t understand edns0, replies with
notimpl, formerr or sends bad badly formed response,
we try basic dns query (ns0.rbsov.bbc.co.uk)

10 years agolib: removed unused headers
Marek Vavruša [Thu, 30 Apr 2015 09:57:19 +0000 (11:57 +0200)] 
lib: removed unused headers

10 years agodaemon/engine: missing prefix
Marek Vavruša [Wed, 29 Apr 2015 20:58:38 +0000 (22:58 +0200)] 
daemon/engine: missing prefix

10 years agodaemon/engine: use MODULEDIR for Lua includes
Marek Vavruša [Wed, 29 Apr 2015 20:55:22 +0000 (22:55 +0200)] 
daemon/engine: use MODULEDIR for Lua includes

10 years agoMerge branch 'events'
Marek Vavruša [Wed, 29 Apr 2015 14:25:41 +0000 (16:25 +0200)] 
Merge branch 'events'

10 years agodaemon/binding: cleanup
Marek Vavruša [Wed, 29 Apr 2015 14:13:50 +0000 (16:13 +0200)] 
daemon/binding: cleanup

10 years agodaemon/lua: time constants in env
Marek Vavruša [Wed, 29 Apr 2015 14:13:41 +0000 (16:13 +0200)] 
daemon/lua: time constants in env

10 years agodaemon/bindings: introduced 'event' package for timers
Marek Vavruša [Wed, 29 Apr 2015 14:13:23 +0000 (16:13 +0200)] 
daemon/bindings: introduced 'event' package for timers

10 years agodaemon/engine: check for bad upvalues in module trampoline
Marek Vavruša [Wed, 29 Apr 2015 14:12:36 +0000 (16:12 +0200)] 
daemon/engine: check for bad upvalues in module trampoline

10 years agoMerge branch 'contrib-csprng'
Marek Vavruša [Tue, 28 Apr 2015 17:04:24 +0000 (19:04 +0200)] 
Merge branch 'contrib-csprng'

10 years agocontrib: created 'contrib' directory with ccan/isaac as csprng
Marek Vavruša [Tue, 28 Apr 2015 16:59:43 +0000 (18:59 +0200)] 
contrib: created 'contrib' directory with ccan/isaac as csprng

previously cryptolib random function was used to generate message id,
this works well but it is slow especially when the entropy is low,
replaced with cryptographically safe prng ISAAC

the ccan directory is going to be used in the future, as it's include
structure makes it easy to embed C snippets instead of reimplementing
them

10 years agoMerge branch 'resolve-split-api'
Marek Vavruša [Tue, 28 Apr 2015 07:31:21 +0000 (09:31 +0200)] 
Merge branch 'resolve-split-api'

10 years agolib/iterate: disable qname m12 on positive answers
Marek Vavruša [Tue, 28 Apr 2015 07:30:00 +0000 (09:30 +0200)] 
lib/iterate: disable qname m12 on positive answers

the encloser might exist and contain valid data, the resolver would return wrong records in this case

10 years agolib/resolve: fixed debug build
Marek Vavruša [Tue, 28 Apr 2015 07:21:38 +0000 (09:21 +0200)] 
lib/resolve: fixed debug build

10 years agodaemon/worker: implemented iteration limit
Marek Vavruša [Tue, 28 Apr 2015 06:59:04 +0000 (08:59 +0200)] 
daemon/worker: implemented iteration limit

refs #15

10 years agoMerge branch 'resolve-split-api'
Marek Vavruša [Mon, 27 Apr 2015 17:02:37 +0000 (19:02 +0200)] 
Merge branch 'resolve-split-api'

10 years agobuild: cleanup in make rules
Marek Vavruša [Mon, 27 Apr 2015 14:19:32 +0000 (16:19 +0200)] 
build: cleanup in make rules

10 years agomodules/hints: fixed memleak on exit
Marek Vavruša [Mon, 27 Apr 2015 14:19:22 +0000 (16:19 +0200)] 
modules/hints: fixed memleak on exit

10 years agodaemon: fixed memleak in network address pack
Marek Vavruša [Mon, 27 Apr 2015 14:19:13 +0000 (16:19 +0200)] 
daemon: fixed memleak in network address pack

10 years agodaemon: fixed memleak in CLI
Marek Vavruša [Mon, 27 Apr 2015 14:18:42 +0000 (16:18 +0200)] 
daemon: fixed memleak in CLI

10 years agodaemon/net: use REUSEADDR and IPV6ONLY for bound sockets
Marek Vavruša [Mon, 27 Apr 2015 14:18:31 +0000 (16:18 +0200)] 
daemon/net: use REUSEADDR and IPV6ONLY for bound sockets

this disables dual-stack and allows binding to both v4 and v4-in-v6
addresses separately

10 years agodaemon/worker: timeouts for queries/connections
Marek Vavruša [Mon, 27 Apr 2015 14:17:29 +0000 (16:17 +0200)] 
daemon/worker: timeouts for queries/connections

fixes #22

10 years agotests: added reserve test for array
Marek Vavruša [Sun, 26 Apr 2015 21:38:35 +0000 (23:38 +0200)] 
tests: added reserve test for array

10 years agotests: added parameter checks for zonecut
Marek Vavruša [Sun, 26 Apr 2015 21:37:57 +0000 (23:37 +0200)] 
tests: added parameter checks for zonecut

10 years agodaemon/worker: reworked multiplexed worker
Marek Vavruša [Fri, 24 Apr 2015 16:31:10 +0000 (18:31 +0200)] 
daemon/worker: reworked multiplexed worker

* each query is assigned a task
* each task contains request, some primitives and mempool
* worker can process multiple tasks at once and
  offload I/O to event loop

Not finished:

* it depends on icmp/system timeouts, #22
* tcp reads are going to be bad if the messages
  arrive fragmented #21

10 years agolib/resolve: check for non-rd query input
Marek Vavruša [Sun, 26 Apr 2015 21:10:55 +0000 (23:10 +0200)] 
lib/resolve: check for non-rd query input

10 years agolib/rplan: removed long-lived wr transactions
Marek Vavruša [Sun, 26 Apr 2015 21:09:34 +0000 (23:09 +0200)] 
lib/rplan: removed long-lived wr transactions

the reason is that LMDB allows only 1 write transaction
per thread, and this doesn’t work well with multiplexed
requests. there is probably going to be some performance hit,
but now transactions are scoped for each cache operation

10 years agodaemon/worker: partially implemented multiplexed resolution
Marek Vavruša [Fri, 24 Apr 2015 07:13:20 +0000 (09:13 +0200)] 
daemon/worker: partially implemented multiplexed resolution

the worker now creates a resolution context copy,
and keeps it if the query requires iterative queries.
the worker_exec() is now a reentrant function that gets
called with incoming data until the resolution is done,
and it sends the answer

10 years agodaemon/io: don’t use handle data for buffers
Marek Vavruša [Fri, 24 Apr 2015 07:11:01 +0000 (09:11 +0200)] 
daemon/io: don’t use handle data for buffers

TODO: per-loop freelists are implemented

10 years agolib/resolve: initialize answer from query (if provided)
Marek Vavruša [Fri, 24 Apr 2015 07:09:00 +0000 (09:09 +0200)] 
lib/resolve: initialize answer from query (if provided)

10 years agodaemon/lua: use rawget/rawset to avoid metatable evaluation
Marek Vavruša [Thu, 23 Apr 2015 12:33:17 +0000 (14:33 +0200)] 
daemon/lua: use rawget/rawset to avoid metatable evaluation

10 years agodaemon/engine: unload module if loaded
Marek Vavruša [Thu, 23 Apr 2015 12:33:00 +0000 (14:33 +0200)] 
daemon/engine: unload module if loaded

10 years agoMerge branch 'resolve-split-api'
Marek Vavruša [Wed, 22 Apr 2015 20:57:59 +0000 (22:57 +0200)] 
Merge branch 'resolve-split-api'

10 years agodoc: updated API doc and examples
Marek Vavruša [Wed, 22 Apr 2015 20:57:22 +0000 (22:57 +0200)] 
doc: updated API doc and examples

10 years agolib/resolve: iterative producer-consumer API implementation
Marek Vavruša [Wed, 22 Apr 2015 20:56:02 +0000 (22:56 +0200)] 
lib/resolve: iterative producer-consumer API implementation

10 years agolib: cleanup
Marek Vavruša [Wed, 22 Apr 2015 20:55:06 +0000 (22:55 +0200)] 
lib: cleanup

10 years agolib: cleanup
Marek Vavruša [Wed, 22 Apr 2015 19:42:19 +0000 (21:42 +0200)] 
lib: cleanup

10 years agotests: test large arrays
Marek Vavruša [Wed, 22 Apr 2015 19:39:49 +0000 (21:39 +0200)] 
tests: test large arrays

10 years agotests: tests for cache removal, time skip
Marek Vavruša [Wed, 22 Apr 2015 19:39:37 +0000 (21:39 +0200)] 
tests: tests for cache removal, time skip

10 years agodaemon/engine: improved error messages (with input:line)
Marek Vavruša [Wed, 22 Apr 2015 19:39:03 +0000 (21:39 +0200)] 
daemon/engine: improved error messages (with input:line)

10 years agolib: fixed missing cast
Marek Vavruša [Mon, 20 Apr 2015 21:32:07 +0000 (23:32 +0200)] 
lib: fixed missing cast

10 years agolib: fixed dead code and early dereference
Marek Vavruša [Sun, 19 Apr 2015 19:46:30 +0000 (21:46 +0200)] 
lib: fixed dead code and early dereference

10 years agolib: fixed unused return value cid#108843
Marek Vavruša [Sun, 19 Apr 2015 19:41:12 +0000 (21:41 +0200)] 
lib: fixed unused return value cid#108843

10 years agodoc: fixed typo
Marek Vavruša [Sun, 19 Apr 2015 19:37:32 +0000 (21:37 +0200)] 
doc: fixed typo

10 years agoMerge branch 'hints_reworked'
Marek Vavruša [Sun, 19 Apr 2015 19:35:17 +0000 (21:35 +0200)] 
Merge branch 'hints_reworked'

10 years agomodules/hints: reworked, configurable and exposed props
Marek Vavruša [Sun, 19 Apr 2015 19:33:36 +0000 (21:33 +0200)] 
modules/hints: reworked, configurable and exposed props

* updated documentation
* the props and config api has some workarounds yet

10 years agodaemon/engine: syntactic sugar for module ‘get’, ‘set’ properties
Marek Vavruša [Sun, 19 Apr 2015 19:32:59 +0000 (21:32 +0200)] 
daemon/engine: syntactic sugar for module ‘get’, ‘set’ properties

if the module declares such properties, they can be accessed
by treating module as a table, e.g.

hints[‘localhost’] = ‘127.0.0.1’
hints.hostname = ‘192.168.1.1.
print(hints.localhost)

equals to:
hints.set(‘localhost 127.0.0.1’)
hints.set(‘hostname 192.168.1.1’)
print(hints.get(‘localhost’))

10 years agolib/generic: missing include guard, updated doc
Marek Vavruša [Sun, 19 Apr 2015 19:28:58 +0000 (21:28 +0200)] 
lib/generic: missing include guard, updated doc

10 years agolib: implemented deletion for zonecut
Marek Vavruša [Sun, 19 Apr 2015 19:28:40 +0000 (21:28 +0200)] 
lib: implemented deletion for zonecut

10 years agoMerge branch 'ns_reputation_groundwork'
Marek Vavruša [Sat, 18 Apr 2015 21:44:28 +0000 (23:44 +0200)] 
Merge branch 'ns_reputation_groundwork'

10 years agolib: bail out on irresolvable nameservers
Marek Vavruša [Sat, 18 Apr 2015 21:43:30 +0000 (23:43 +0200)] 
lib: bail out on irresolvable nameservers

10 years agolib: basic nameserver election
Marek Vavruša [Sat, 18 Apr 2015 21:42:15 +0000 (23:42 +0200)] 
lib: basic nameserver election

nameservers with addresses are preferred, the rest
has same weight

no blacklisting, penalization or rtt scoring yet

10 years agolib: implemented new zonecut interface
Marek Vavruša [Sat, 18 Apr 2015 21:38:58 +0000 (23:38 +0200)] 
lib: implemented new zonecut interface

instead of keeping just random NS and address,
it keeps a map of nameservers => {addresslist}

this allows scoring and correct NS election, fallback
and evaluation

10 years agotests: updated mock api for libknot master
Marek Vavruša [Sat, 18 Apr 2015 21:31:57 +0000 (23:31 +0200)] 
tests: updated mock api for libknot master

10 years agolib/generic: documented walk for map, cleanup
Marek Vavruša [Sat, 18 Apr 2015 21:30:40 +0000 (23:30 +0200)] 
lib/generic: documented walk for map, cleanup

10 years agolib/generic: implemented deletion for pack
Marek Vavruša [Sat, 18 Apr 2015 21:30:16 +0000 (23:30 +0200)] 
lib/generic: implemented deletion for pack

10 years agobuild: removed dead links
Marek Vavruša [Fri, 17 Apr 2015 15:23:11 +0000 (17:23 +0200)] 
build: removed dead links

10 years agoMerge branch 'autotools_remove'
Marek Vavruša [Fri, 17 Apr 2015 15:10:09 +0000 (17:10 +0200)] 
Merge branch 'autotools_remove'

10 years agobuild: added executables to .gitignore
Marek Vavruša [Fri, 17 Apr 2015 15:08:59 +0000 (17:08 +0200)] 
build: added executables to .gitignore

10 years agobuild: removed outdated autotools files
Marek Vavruša [Fri, 17 Apr 2015 15:08:41 +0000 (17:08 +0200)] 
build: removed outdated autotools files

10 years agodoc: updated library doc
Marek Vavruša [Wed, 15 Apr 2015 20:12:37 +0000 (22:12 +0200)] 
doc: updated library doc

10 years agotests: added tests for _mm functions
Marek Vavruša [Wed, 15 Apr 2015 19:32:43 +0000 (21:32 +0200)] 
tests: added tests for _mm functions

10 years agodoc: added pack
Marek Vavruša [Wed, 15 Apr 2015 19:01:54 +0000 (21:01 +0200)] 
doc: added pack

10 years agoMerge branch 'generic_pack'
Marek Vavruša [Wed, 15 Apr 2015 18:54:43 +0000 (20:54 +0200)] 
Merge branch 'generic_pack'

10 years agolib/generic: new data structure - packed list
Marek Vavruša [Wed, 15 Apr 2015 13:49:32 +0000 (15:49 +0200)] 
lib/generic: new data structure - packed list

10 years agobuild: added another possible name for lua package
Karel Slany [Wed, 15 Apr 2015 14:14:03 +0000 (16:14 +0200)] 
build: added another possible name for lua package

On FreeBSD the lua package was not detected. (Tested on 9.3 and 10.1).

10 years agolib/generic: changed map alloc callbacks signature
Marek Vavruša [Wed, 15 Apr 2015 13:49:09 +0000 (15:49 +0200)] 
lib/generic: changed map alloc callbacks signature

10 years agodoc: removed u8 circled numbers
Marek Vavruša [Tue, 14 Apr 2015 13:39:28 +0000 (15:39 +0200)] 
doc: removed u8 circled numbers

10 years agoreadme: status for master branch
Marek Vavruša [Tue, 14 Apr 2015 12:34:55 +0000 (14:34 +0200)] 
readme: status for master branch

10 years agodoc: added @cond and updated readme
Marek Vavruša [Mon, 13 Apr 2015 20:48:51 +0000 (22:48 +0200)] 
doc: added @cond and updated readme

10 years agodoc: specific version of breathe, as 4.0 fails to build
Marek Vavruša [Sun, 12 Apr 2015 20:21:44 +0000 (22:21 +0200)] 
doc: specific version of breathe, as 4.0 fails to build

10 years agoreadme: added doc badge
Marek Vavruša [Sun, 12 Apr 2015 20:03:58 +0000 (22:03 +0200)] 
readme: added doc badge

10 years agoMerge branch 'config_documentation'
Marek Vavruša [Sun, 12 Apr 2015 19:57:44 +0000 (21:57 +0200)] 
Merge branch 'config_documentation'

10 years agodoc: default template the same as on rtd
Marek Vavruša [Sun, 12 Apr 2015 19:57:01 +0000 (21:57 +0200)] 
doc: default template the same as on rtd

10 years agodoc/modules: updated modules documentation
Marek Vavruša [Sun, 12 Apr 2015 19:56:49 +0000 (21:56 +0200)] 
doc/modules: updated modules documentation

extracted part about writing layers to lib documentation