]> git.ipfire.org Git - thirdparty/knot-resolver.git/log
thirdparty/knot-resolver.git
6 years agomodules impl.: avoid using custom trampolines
Vladimír Čunát [Fri, 15 Mar 2019 16:14:58 +0000 (17:14 +0100)] 
modules impl.: avoid using custom trampolines

...when making calls from lua to C modules; use luaJIT FFI instead.
This eliminates some cases of lua_pushlightuserdata().

6 years agoengine: switch to static allocation instead of stack
Vladimír Čunát [Wed, 13 Mar 2019 12:10:06 +0000 (13:10 +0100)] 
engine: switch to static allocation instead of stack

6 years agoworker: convert to a proper singleton
Vladimír Čunát [Wed, 27 Feb 2019 16:13:39 +0000 (17:13 +0100)] 
worker: convert to a proper singleton

On many places we've been assuming that there's only a single worker,
but we still often didn't utilize the property well.  To get the pointer
we used various ways, all even untyped:
 - __worker global variable in lua
 - uv_default_loop()->data
 - kr_request::daemon_context

Now we instead simply define a global typed pointer the_worker.

Nitpick: also worker_{init,deinit}() are reordered to correspond
to the order of the fields, etc.

6 years agoMerge !824: distrotests: automate packaging tests in GitLab CI obs-knot-dns-deve-jq0xxt/deployments/16 obs-knot-resolver-es11k1/deployments/15
Vladimír Čunát [Tue, 11 Jun 2019 12:13:52 +0000 (12:13 +0000)] 
Merge !824: distrotests: automate packaging tests in GitLab CI

6 years agogitlabci: make version mismatch more obvious in obs:* jobs
Tomas Krizek [Fri, 7 Jun 2019 09:38:21 +0000 (11:38 +0200)] 
gitlabci: make version mismatch more obvious in obs:* jobs

6 years agogitlabci: fail obs:build:all on mismatching versions
Tomas Krizek [Thu, 6 Jun 2019 14:24:23 +0000 (16:24 +0200)] 
gitlabci: fail obs:build:all on mismatching versions

6 years agogitlabci: fix incorrect result of obs:build:all
Tomas Krizek [Wed, 5 Jun 2019 14:22:36 +0000 (16:22 +0200)] 
gitlabci: fix incorrect result of obs:build:all

6 years agodistro/tests: remove fedora28, ubuntu1810 (eol)
Tomas Krizek [Wed, 5 Jun 2019 11:47:08 +0000 (13:47 +0200)] 
distro/tests: remove fedora28, ubuntu1810 (eol)

6 years agogitlabci: reorganize & cleanup
Tomas Krizek [Wed, 5 Jun 2019 11:34:23 +0000 (13:34 +0200)] 
gitlabci: reorganize & cleanup

6 years agogitlabci: support OBS build in knot-resolver-latest on tags
Tomas Krizek [Wed, 5 Jun 2019 10:36:49 +0000 (12:36 +0200)] 
gitlabci: support OBS build in knot-resolver-latest on tags

6 years agogitlabci: add OBS build check (all archs+distros)
Tomas Krizek [Tue, 4 Jun 2019 12:34:43 +0000 (14:34 +0200)] 
gitlabci: add OBS build check (all archs+distros)

6 years agogitlabci: add distrotests to CI
Tomas Krizek [Thu, 30 May 2019 12:55:48 +0000 (14:55 +0200)] 
gitlabci: add distrotests to CI

6 years agoscripts/make-distrofiles.sh: remove obsolete -s switch
Tomas Krizek [Thu, 30 May 2019 14:36:19 +0000 (16:36 +0200)] 
scripts/make-distrofiles.sh: remove obsolete -s switch

6 years agogitlabci: add SKIP_CI variable
Tomas Krizek [Thu, 30 May 2019 11:16:21 +0000 (13:16 +0200)] 
gitlabci: add SKIP_CI variable

6 years agodistro/tests: support more OBS repos in test-distro.sh
Tomas Krizek [Fri, 24 May 2019 10:35:13 +0000 (12:35 +0200)] 
distro/tests: support more OBS repos in test-distro.sh

6 years agoscripts/obs-build.sh: support build for different repos
Tomas Krizek [Fri, 24 May 2019 08:45:59 +0000 (10:45 +0200)] 
scripts/obs-build.sh: support build for different repos

6 years agodistro/tests: support test-distro.sh exec from any directory
Tomas Krizek [Thu, 23 May 2019 13:59:11 +0000 (15:59 +0200)] 
distro/tests: support test-distro.sh exec from any directory

6 years agodistro/tests: remove pkgtests for rolling distros
Tomas Krizek [Mon, 20 May 2019 14:15:01 +0000 (16:15 +0200)] 
distro/tests: remove pkgtests for rolling distros

6 years agodistro/tests: add fedora30, ubuntu1904
Tomas Krizek [Mon, 20 May 2019 11:13:38 +0000 (13:13 +0200)] 
distro/tests: add fedora30, ubuntu1904

6 years agodistro/tests: limit CPU and memory for VMs
Tomas Krizek [Mon, 20 May 2019 10:51:08 +0000 (12:51 +0200)] 
distro/tests: limit CPU and memory for VMs

6 years agoMerge !811: daemon: support AF_UNIX sockets in the http module
Vladimír Čunát [Tue, 11 Jun 2019 10:20:44 +0000 (10:20 +0000)] 
Merge !811: daemon: support AF_UNIX sockets in the http module

6 years agodoc: document AF_UNIX support for webmgmt
Tomas Krizek [Mon, 10 Jun 2019 15:08:07 +0000 (17:08 +0200)] 
doc: document AF_UNIX support for webmgmt

6 years agomodules/http: test connection to an AF_UNIX socket
Vladimír Čunát [Mon, 3 Jun 2019 13:42:02 +0000 (15:42 +0200)] 
modules/http: test connection to an AF_UNIX socket

6 years agodaemon: support AF_UNIX sockets in the http module
Vladimír Čunát [Tue, 23 Apr 2019 12:23:43 +0000 (14:23 +0200)] 
daemon: support AF_UNIX sockets in the http module

There's no support for the "dns" and "tls" kinds (for now).

Tested briefly:
> modules = { 'http' }
> net.listen('/tmp/kresd-socket', nil, { kind = 'webmgmt' })
$ socat TCP-LISTEN:5555,reuseaddr,fork UNIX-CLIENT:/tmp/kresd-socket
$ xdg-open http://127.0.0.1:5555

6 years agoMerge branch 'doh-any-origin' into 'master'
Tomas Krizek [Mon, 3 Jun 2019 12:47:27 +0000 (12:47 +0000)] 
Merge branch 'doh-any-origin' into 'master'

http DoH: make answers include access-control-allow-origin: *

See merge request knot/knot-resolver!823

6 years agohttp DoH: answers include access-control-allow-origin: *
Vladimír Čunát [Mon, 27 May 2019 13:13:37 +0000 (15:13 +0200)] 
http DoH: answers include access-control-allow-origin: *

Otherwise most browsers won't allow JS from *other* sites to use the
data - one of the two primary use cases for DoH as stated in RFC 8484.

6 years agoMerge !815: lib/nsrep: refactor a piece of code
Vladimír Čunát [Thu, 30 May 2019 15:34:12 +0000 (15:34 +0000)] 
Merge !815: lib/nsrep: refactor a piece of code

6 years agolib/nsrep: refactor a piece of code
Vladimír Čunát [Thu, 2 May 2019 12:15:23 +0000 (14:15 +0200)] 
lib/nsrep: refactor a piece of code

This is yet another logically equivalent change after 270d9964.
Now it's written in a way that expresses the original intention more
clearly and without copy&paste or long lines.

It seems easiest to verify by inspecting the meaning of the code
*separartely* for the two cases, based on condition:
cur_addr_score < KR_NS_TIMEOUT

6 years agoMerge branch 'p/uv_write-lifetime' into 'master'
Tomas Krizek [Wed, 29 May 2019 15:58:29 +0000 (15:58 +0000)] 
Merge branch 'p/uv_write-lifetime' into 'master'

daemon TCP to upstream: don't send wrong message length

See merge request knot/knot-resolver!816

6 years agodaemon TCP to upstream: don't send wrong message length
Vladimír Čunát [Mon, 13 May 2019 14:46:48 +0000 (16:46 +0200)] 
daemon TCP to upstream: don't send wrong message length

See the added comments.  Such bugs are tricky, because the old code
would typically work just fine, only if libuv/OS decided to postpone
copying the data (perhaps large load), we would send two bytes from
this address on C stack - their later value (hard to predict what).

Security risks: the two bytes might theoretically contain information
that was more or less private and we just send it to some DNS server
(possibly over unencrypted TCP), but ATM I find it very unlikely that
this bug could be practically exploited.

6 years agoMerge branch 'net_bufsize' into 'master'
Petr Špaček [Tue, 28 May 2019 09:15:38 +0000 (09:15 +0000)] 
Merge branch 'net_bufsize' into 'master'

clarification to docs for net.bufsize()

See merge request knot/knot-resolver!821

6 years agodocs: clarify meaning of net.bufsize
Petr Špaček [Tue, 28 May 2019 07:44:29 +0000 (09:44 +0200)] 
docs: clarify meaning of net.bufsize

6 years agodocs for net.bufsize(): fix a typo
Vladimír Čunát [Thu, 23 May 2019 07:58:52 +0000 (09:58 +0200)] 
docs for net.bufsize(): fix a typo

6 years agoMerge branch 'test-ci-adjust-times' into 'master'
Tomas Krizek [Fri, 24 May 2019 12:31:37 +0000 (12:31 +0000)] 
Merge branch 'test-ci-adjust-times' into 'master'

modules/ta_update.test: increase test times for CI

See merge request knot/knot-resolver!822

6 years agomodules/ta_update.test: increase test times for CI
Tomas Krizek [Fri, 24 May 2019 11:59:29 +0000 (13:59 +0200)] 
modules/ta_update.test: increase test times for CI

6 years agoMerge !820: doc: systemd
Vladimír Čunát [Fri, 24 May 2019 10:51:23 +0000 (10:51 +0000)] 
Merge !820: doc: systemd

6 years agosystemd: add note about locahost defaults
Tomas Krizek [Wed, 22 May 2019 11:43:32 +0000 (13:43 +0200)] 
systemd: add note about locahost defaults

6 years agosystemd: omit unneeded IP from ListenStream/Datagram
Tomas Krizek [Wed, 22 May 2019 11:42:25 +0000 (13:42 +0200)] 
systemd: omit unneeded IP from ListenStream/Datagram

6 years agoMerge branch 'docs-fixes' into 'master'
Petr Špaček [Mon, 6 May 2019 13:43:12 +0000 (13:43 +0000)] 
Merge branch 'docs-fixes' into 'master'

docs fixes

See merge request knot/knot-resolver!814

6 years agodocs for worker.stats()
Vladimír Čunát [Mon, 29 Apr 2019 12:27:46 +0000 (14:27 +0200)] 
docs for worker.stats()

- generate most of it from source
- make order the same in implementation and description

6 years agodocs: nitpick fixes from mailing-list
Vladimír Čunát [Mon, 29 Apr 2019 11:12:14 +0000 (13:12 +0200)] 
docs: nitpick fixes from mailing-list

6 years agoMerge branch 'ci-fixes' into 'master'
Tomas Krizek [Fri, 26 Apr 2019 12:14:10 +0000 (12:14 +0000)] 
Merge branch 'ci-fixes' into 'master'

CI fixes

See merge request knot/knot-resolver!812

6 years agoci: fix test:valgrind
Tomas Krizek [Thu, 25 Apr 2019 12:36:42 +0000 (14:36 +0200)] 
ci: fix test:valgrind

6 years agoci: collect logs from respdiff:baisc
Tomas Krizek [Thu, 25 Apr 2019 12:35:59 +0000 (14:35 +0200)] 
ci: collect logs from respdiff:baisc

6 years agoMerge branch 'ci-update-image' into 'master'
Tomas Krizek [Fri, 26 Apr 2019 12:04:15 +0000 (12:04 +0000)] 
Merge branch 'ci-update-image' into 'master'

ci: update debian-buster docker image

See merge request knot/knot-resolver!813

6 years agoci: update debian-buster docker image
Tomas Krizek [Fri, 26 Apr 2019 11:01:50 +0000 (13:01 +0200)] 
ci: update debian-buster docker image

6 years agoMerge !810: meson fixes
Vladimír Čunát [Thu, 25 Apr 2019 11:24:49 +0000 (11:24 +0000)] 
Merge !810: meson fixes

Closes #461 and #460.

6 years agomeson: nitpick newline
Tomas Krizek [Tue, 23 Apr 2019 09:57:31 +0000 (11:57 +0200)] 
meson: nitpick newline

6 years agomeson: dnstap - use declare_dependency for generated sources
Tomas Krizek [Tue, 23 Apr 2019 09:52:42 +0000 (11:52 +0200)] 
meson: dnstap - use declare_dependency for generated sources

Closes #461

6 years agomeson: explicitly disable unity builds
Tomas Krizek [Tue, 23 Apr 2019 09:38:32 +0000 (11:38 +0200)] 
meson: explicitly disable unity builds

Related #460

6 years agoMerge branch 'release-4-0-0' into 'master' v4.0.0
Tomas Krizek [Thu, 18 Apr 2019 16:36:15 +0000 (16:36 +0000)] 
Merge branch 'release-4-0-0' into 'master'

Release 4.0.0

See merge request knot/knot-resolver!809

6 years agorelease 4.0.0
Tomas Krizek [Thu, 18 Apr 2019 11:05:39 +0000 (13:05 +0200)] 
release 4.0.0

6 years agoci: remove check for debian symbols
Tomas Krizek [Thu, 18 Apr 2019 15:28:57 +0000 (17:28 +0200)] 
ci: remove check for debian symbols

6 years agoMerge branch 'packaging-doh' into 'master'
Tomas Krizek [Thu, 18 Apr 2019 16:30:18 +0000 (16:30 +0000)] 
Merge branch 'packaging-doh' into 'master'

packaging: DoH

See merge request knot/knot-resolver!806

6 years agohttp: upgrading to 4.0.0 docs
Petr Špaček [Thu, 18 Apr 2019 16:23:06 +0000 (18:23 +0200)] 
http: upgrading to 4.0.0 docs

6 years agodoc/net: nitpicks and system-kresd.slice restart
Tomas Krizek [Thu, 18 Apr 2019 16:09:59 +0000 (18:09 +0200)] 
doc/net: nitpicks and system-kresd.slice restart

6 years agohttp: polish docs
Petr Špaček [Thu, 18 Apr 2019 15:33:21 +0000 (17:33 +0200)] 
http: polish docs

6 years agodocs: polish network configuration bits
Petr Špaček [Thu, 18 Apr 2019 15:25:03 +0000 (17:25 +0200)] 
docs: polish network configuration bits

6 years agodoc/upgrading: mention changed to http module
Tomas Krizek [Thu, 18 Apr 2019 15:04:07 +0000 (17:04 +0200)] 
doc/upgrading: mention changed to http module

6 years agomodules/http: use port 8453 as default for web management
Tomas Krizek [Thu, 18 Apr 2019 13:18:02 +0000 (15:18 +0200)] 
modules/http: use port 8453 as default for web management

6 years agodoc: unify documented DoH port usage to 443
Tomas Krizek [Thu, 18 Apr 2019 13:12:08 +0000 (15:12 +0200)] 
doc: unify documented DoH port usage to 443

6 years agoci: treat config.ta_update test as a special snowflake
Tomas Krizek [Thu, 18 Apr 2019 12:29:23 +0000 (14:29 +0200)] 
ci: treat config.ta_update test as a special snowflake

config.ta_update test doesn't play along with others and wants all of
the runner's attention to itself, otherwise it throws a tantrum.

6 years agoetc/config: explicitly set kind to tls
Tomas Krizek [Thu, 18 Apr 2019 07:19:38 +0000 (09:19 +0200)] 
etc/config: explicitly set kind to tls

6 years agodocker: update ports, add doh
Tomas Krizek [Thu, 18 Apr 2019 07:19:08 +0000 (09:19 +0200)] 
docker: update ports, add doh

6 years agodoc: document http module usage with systemd
Tomas Krizek [Wed, 17 Apr 2019 16:24:01 +0000 (18:24 +0200)] 
doc: document http module usage with systemd

6 years agodistro/deb: daemon-reload after http installation
Tomas Krizek [Wed, 17 Apr 2019 14:30:54 +0000 (16:30 +0200)] 
distro/deb: daemon-reload after http installation

6 years agosystemd: use 44353 for DoH port
Tomas Krizek [Wed, 17 Apr 2019 13:13:28 +0000 (15:13 +0200)] 
systemd: use 44353 for DoH port

Using 443 as the default port presents too many packaging challenges.
DoH requires configuration to be useful anyway, so users are free to
override this value as they see fit.

6 years agodistro/tests: remove fedora workaround
Tomas Krizek [Wed, 17 Apr 2019 12:19:11 +0000 (14:19 +0200)] 
distro/tests: remove fedora workaround

6 years agodistro/rpm: update dependency names
Tomas Krizek [Wed, 17 Apr 2019 10:52:09 +0000 (12:52 +0200)] 
distro/rpm: update dependency names

6 years agodistro: add explicit dependency on new lua-cqueues
Tomas Krizek [Tue, 16 Apr 2019 20:02:49 +0000 (22:02 +0200)] 
distro: add explicit dependency on new lua-cqueues

Older cqueues may cause some issues with lua-http

6 years agodistro/tests: additional tests, including DoH
Tomas Krizek [Fri, 12 Apr 2019 15:08:20 +0000 (17:08 +0200)] 
distro/tests: additional tests, including DoH

6 years agosystemd: integrate http module with systemd
Tomas Krizek [Thu, 11 Apr 2019 15:40:48 +0000 (17:40 +0200)] 
systemd: integrate http module with systemd

6 years agomodules/experimental_dot_auth: remove bundled basexx
Tomas Krizek [Wed, 10 Apr 2019 12:44:48 +0000 (14:44 +0200)] 
modules/experimental_dot_auth: remove bundled basexx

6 years agoscripts: update obs-testbuild.sh
Tomas Krizek [Wed, 10 Apr 2019 11:10:54 +0000 (13:10 +0200)] 
scripts: update obs-testbuild.sh

6 years agodistro/rpm: create knot-resolver-module-http package
Tomas Krizek [Wed, 10 Apr 2019 10:59:15 +0000 (12:59 +0200)] 
distro/rpm: create knot-resolver-module-http package

6 years agodistro/deb: add ta_update module
Tomas Krizek [Wed, 10 Apr 2019 10:57:59 +0000 (12:57 +0200)] 
distro/deb: add ta_update module

6 years agoMerge branch 'http-ephemeral-lifetime' into 'master'
Tomas Krizek [Thu, 18 Apr 2019 15:08:46 +0000 (15:08 +0000)] 
Merge branch 'http-ephemeral-lifetime' into 'master'

modules/http: fix too early renewal of ephemeral certificates

See merge request knot/knot-resolver!808

6 years agomodules/http: fix too early renewal of ephemeral certificates
Vladimír Čunát [Thu, 18 Apr 2019 15:01:12 +0000 (17:01 +0200)] 
modules/http: fix too early renewal of ephemeral certificates

6 years agoMerge branch 'http-config-fixes' into 'master'
Tomas Krizek [Thu, 18 Apr 2019 13:19:17 +0000 (13:19 +0000)] 
Merge branch 'http-config-fixes' into 'master'

http.config() fixes

See merge request knot/knot-resolver!807

6 years agohttp: remove leftovers after transition to net.listen() interface
Petr Špaček [Thu, 18 Apr 2019 13:11:58 +0000 (15:11 +0200)] 
http: remove leftovers after transition to net.listen() interface

6 years agohttp: usability improvement
Petr Špaček [Thu, 18 Apr 2019 13:06:03 +0000 (15:06 +0200)] 
http: usability improvement

Formerly http.config({tls=false}, 'doh') also removed all endpoints for
'doh', which was unexpected.

With this change configurations are merged as expected and user does not
have to repeat endpoints and other options from builtin template.

6 years agoMerge branch 'http-sockets' into 'master'
Tomas Krizek [Thu, 18 Apr 2019 09:24:44 +0000 (09:24 +0000)] 
Merge branch 'http-sockets' into 'master'

http sockets

Closes #85

See merge request knot/knot-resolver!803

6 years agohttp: assorted fixed to make luacheck happy
Petr Špaček [Thu, 18 Apr 2019 09:18:53 +0000 (11:18 +0200)] 
http: assorted fixed to make luacheck happy

6 years agohttp: fix http.tls config tests and validate certs during config()
Petr Špaček [Thu, 18 Apr 2019 09:00:46 +0000 (11:00 +0200)] 
http: fix http.tls config tests and validate certs during config()

6 years agohttp: fix forgotten doh config tests
Petr Špaček [Thu, 18 Apr 2019 08:30:45 +0000 (10:30 +0200)] 
http: fix forgotten doh config tests

6 years agohttp: update docs
Petr Špaček [Wed, 17 Apr 2019 06:47:00 +0000 (08:47 +0200)] 
http: update docs

6 years agohttp: respect socket type provided by net.listen() and systemd
Petr Špaček [Tue, 16 Apr 2019 11:45:33 +0000 (13:45 +0200)] 
http: respect socket type provided by net.listen() and systemd

6 years agotests: disable output buffering in config tests
Petr Špaček [Tue, 16 Apr 2019 10:31:05 +0000 (12:31 +0200)] 
tests: disable output buffering in config tests

Output buffering in tests made debugging much harder because crash in
middle of operation discarded while buffer and left us without a trace
what was going on.

6 years agohttp: handle socket closure from net.close()
Petr Špaček [Tue, 16 Apr 2019 10:13:43 +0000 (12:13 +0200)] 
http: handle socket closure from net.close()

6 years agohttp: use sockets from net.listen()
Petr Špaček [Tue, 16 Apr 2019 07:10:15 +0000 (09:10 +0200)] 
http: use sockets from net.listen()

We still need to somehow solve socket closure etc.

6 years agohttp: config templates
Petr Špaček [Mon, 15 Apr 2019 15:54:18 +0000 (17:54 +0200)] 
http: config templates

Add interface for providing different named configuration sets.
This will be handy once we start getting named sockets from systemd.

6 years agohttp: new function to merge config sets
Petr Špaček [Mon, 15 Apr 2019 13:40:27 +0000 (15:40 +0200)] 
http: new function to merge config sets

6 years agohttp: remove obsolete function interface()
Petr Špaček [Mon, 15 Apr 2019 13:40:00 +0000 (15:40 +0200)] 
http: remove obsolete function interface()

6 years agohttp: remember server config in http.servers table
Petr Špaček [Mon, 15 Apr 2019 13:01:23 +0000 (15:01 +0200)] 
http: remember server config in http.servers table

6 years agolua net.listen() tweaks (+docs)
Vladimír Čunát [Wed, 17 Apr 2019 16:23:25 +0000 (18:23 +0200)] 
lua net.listen() tweaks (+docs)

6 years agolua net.list(): change output and docs
Vladimír Čunát [Mon, 15 Apr 2019 07:26:56 +0000 (09:26 +0200)] 
lua net.list(): change output and docs

Now we hopefully won't need to touch it for a long time.

6 years agolua net.close(): multiple fixes
Vladimír Čunát [Tue, 16 Apr 2019 09:57:03 +0000 (11:57 +0200)] 
lua net.close(): multiple fixes

- allow omitting port number
- sync docs
- fix memory leak
- fix with kind != NULL

6 years agodaemon: support for more endpoint kinds
Vladimír Čunát [Sat, 13 Apr 2019 08:25:20 +0000 (10:25 +0200)] 
daemon: support for more endpoint kinds

6 years agodaemon/bindings: add lua_pushpointer()
Vladimír Čunát [Mon, 15 Apr 2019 11:50:51 +0000 (13:50 +0200)] 
daemon/bindings: add lua_pushpointer()

Originally it's from another branch.

6 years agosimplify approach to bind()
Vladimír Čunát [Fri, 12 Apr 2019 13:06:02 +0000 (15:06 +0200)] 
simplify approach to bind()

The complication is that we need to work with addresses and
just file-descriptors passed from some parent process.
The former approach lead to logical duplication of some steps;
now we add a step converting addresses to file-descriptors.
Thanks to that we always do bind() without touching libuv,
so the problem with forking disappears :-)