Commit graph

945 commits

Author SHA1 Message Date
Libor Peltan
b68d99c1ec libknot: knot_rrset_equal refactor, add TTL 2019-09-11 11:28:20 +02:00
Jan Hák
c04e509468 geoip: Added support for SRV DNAME that specify service/protocol
Description can be found at RFC 2782
2019-09-10 14:06:54 +02:00
Libor Peltan
ee7d582457 ctl/updates: read/search also nsec3 nodes (+refactoring) 2019-09-08 20:28:57 +02:00
Vladimír Čunát
36ef0a0ec7 trie_get_try_wildcard(): more efficient version
It's not at all necessary to repeatedly search from the root,
though this optimization makes the code a bit more complex.

Even here, technically the last memcmp() wouldn't need to start at the
beginning, but I didn't want to overcomplicate this.
2019-09-08 17:10:04 +02:00
Jan Hák
63d9d0933e geoip: added wildcard as possible configuration 2019-09-08 17:10:04 +02:00
Daniel Salzman
46509a5194 libknot: allow parsing multiple EDNS options of the same type 2019-09-06 13:48:22 +02:00
Daniel Salzman
91d35c5a9c libknot: remove unused and strange functions knot_rdataset_(un)reserve 2019-09-05 16:29:26 +02:00
Libor Peltan
e4a7cd4154 libknot: pre-computing rdataset size 2019-09-05 16:29:26 +02:00
Libor Peltan
f5270348c4 knot: add ds-push event to zone timers 2019-09-05 09:00:00 +02:00
Daniel Salzman
af8628ed1a knot: unify DS-related event terminology 2019-09-05 09:00:00 +02:00
Daniel Salzman
e5f5855038 Revert unintentionally squashed "dnssec: implemented pushing updated DS to parent"
This reverts commit 2dbb39d29a.
2019-09-05 08:59:29 +02:00
Libor Peltan
2dbb39d29a dnssec: implemented pushing updated DS to parent 2019-09-04 15:15:28 +00:00
Daniel Salzman
799f181ef0 conf: allow cache reinitialization during configuration import 2019-08-26 15:00:08 +02:00
Daniel Salzman
db8b9c0ac9 semantic check: improve glue check if covered by wildcard 2019-08-23 17:10:29 +02:00
Libor Peltan
fbd132114b semantic check: don't require a glue which is under another delegation 2019-08-22 16:55:01 +02:00
Libor Peltan
e39993e08f semcheck: check glue even if it shall be in zone not below the delegation 2019-08-22 16:47:36 +02:00
Libor Peltan
6265ddc40e journal/zone load: create two changeset in case of ixfr/diff
first one having a diff of zone history for use by slaves
second one diff between zonefile and zone for use with restart
2019-08-15 14:25:18 +02:00
Libor Peltan
93b08a89b8 changesets: always cancel-out when adding/removing to and merging 2019-08-07 10:22:46 +02:00
Jan Hák
322917486c conf: add option for setting TCP query timeout
fixes #474
2019-07-22 15:13:54 +02:00
David Vašek
725468df17 conf: store the {udp,tcp,background}-workers parametrs in the cache and use those values 2019-07-12 11:27:33 +02:00
David Vašek
f867ac17b3 conf: auto-configure max-tcp-clients 2019-07-12 11:27:33 +02:00
David Vašek
e3d311d8ed coding style improvements - copyright notice 2019-07-04 15:16:43 +02:00
David Vašek
254b3d4473 tests: fix the knot/test_server closing 2019-06-26 14:58:54 +02:00
Daniel Salzman
83de00c53f yparser: fix invalid error line number for lines with leading tabulator 2019-06-23 21:54:30 +02:00
Libor Peltan
90e4a8c757 adjust: refactored measurement of zone size and max TTL 2019-05-24 14:08:42 +02:00
Libor Peltan
cee9549feb optimization: adjusting: mesure zone size incrementally for updates 2019-05-15 10:33:21 +02:00
Libor Peltan
1eee116853 nsec/nsec3: avoid using extra changeset for fixing chain 2019-05-07 10:07:52 +02:00
Daniel Salzman
957201ea16 node: remove unused function node_set_parent 2019-04-26 15:18:00 +02:00
Daniel Salzman
e3094e3a86 Update license headers 2019-04-26 15:18:00 +02:00
Libor Peltan
bc7f4f82fb semaphore: custom implementation to somehow work on OpenBSD and OSX 2019-04-26 15:18:00 +02:00
Libor Peltan
00b6db410a apply: COW mutex -> semaphore, cause freed by RCU in other thread 2019-04-26 14:39:59 +02:00
Daniel Salzman
2de4e9937c tests/node: fix double free 2019-04-26 14:39:59 +02:00
Libor Peltan
77845cc087 update: mutex avoid next update before cleanup by call_rcu 2019-04-26 14:39:59 +02:00
Libor Peltan
475a2e80e1 bi-nodes implemented, used for zone, updates, apply 2019-04-26 14:39:59 +02:00
Libor Peltan
7b9cc47f0e node: function wrapper to obtaining prev, parent and glue nodes 2019-04-26 14:39:58 +02:00
Libor Peltan
6eb8875f30 zone tree: apply callback becomes node* instead of node** 2019-04-26 14:39:58 +02:00
Libor Peltan
25b571de7b zone-in-journal: serialize zone contents directly 2019-04-26 14:39:58 +02:00
Daniel Salzman
6c5ecae801 kaspdb: remove unused kasp_db_list_zones 2019-04-24 21:57:30 +02:00
Daniel Salzman
0eb7d6db64 mod-rrl: simplify endian-independent adrress operations 2019-04-02 18:40:14 +02:00
Mark Karpilovskij
defdfc2bee mod-rrl: refactor hopscotch hashing to be readable 2019-04-02 18:40:14 +02:00
Mark Karpilovskij
bffa4eb4db mod-rrl: remove unnecessary qname length from hash 2019-04-02 18:40:11 +02:00
Mark Karpilovskij
a8b22f15ad tests/rrl: check endian-independent hash input 2019-04-02 18:39:56 +02:00
Daniel Salzman
54a151ecfd Makefiles: add missing lmdb_CFLAGS
relates #638
2019-03-07 10:57:34 +01:00
Daniel Salzman
e2fa93faa7 tests/qp-cow: mute 'unused variable' if NDEBUG 2019-02-27 13:49:52 +01:00
Daniel Salzman
f0a889bf29 tests/kasp_db: take important code out of assertion 2019-02-27 13:40:57 +01:00
Daniel Salzman
cbba40b745 tests: mute warning on OpenBSD 2019-02-22 15:38:01 +01:00
Daniel Salzman
c2aa0d8339 tests: get rid of strcpy 2019-02-22 11:16:08 +01:00
Daniel Salzman
68b01318a9 libzscanner: add support for OPENPGPKEY, CSYNC, SMIMEA, and ZONEMD rrtypes 2019-02-21 16:42:02 +01:00
Daniel Salzman
49058e2295 semchecks: fix in apex glue check, extend and unify tests 2019-02-20 21:09:37 +01:00
Daniel Salzman
f83685b822 tests/net: remove commented, broken, and unreliable test 2019-02-08 16:36:59 +01:00
Daniel Salzman
c3b3d54f13 Merge branch 'lmdb_refactor' into 'master'
Lmdb refactor

See merge request knot/knot-dns!962
2019-02-07 15:37:18 +00:00
Daniel Salzman
949f7c198d Adapt to trie API change 2019-02-06 21:36:05 +01:00
Daniel Salzman
eed80ad6ff net: rename net_send/recv net_base_send/recv to fix name conflicts 2019-02-01 16:47:10 +01:00
Libor Peltan
844209ef4f timers: using new lmdb implementation, + code organization 2019-02-01 14:45:51 +01:00
Libor Peltan
f821295aab kasp_db: use new LMDB interlayer + improvements 2019-02-01 14:45:51 +01:00
Libor Peltan
83688ddddb server+zone: using new implementation of journal for everything 2019-02-01 14:45:51 +01:00
Libor Peltan
0acc6a7149 journal: add new implementation of LMDB layer and Journal 2019-02-01 14:45:51 +01:00
Mark Karpilovskij
ccc470ec47 zone: DNAME semantic check according to RFC 6672 2019-01-30 13:57:02 +01:00
Daniel Salzman
62f4d7df7f libdnssec: export pem API 2019-01-24 16:58:57 +01:00
Daniel Salzman
ff0cdb7ffe libdnssec: dissolve libshared in libdnssec to fix linking issues with Clang 2019-01-24 16:55:22 +01:00
Daniel Salzman
73c1eee0e4 tests: fix some memory leaks in test_keystore_pkcs8 2019-01-21 20:40:57 +01:00
Daniel Salzman
ba25f38e91 tests: remove libdnssec/test_list.c 2019-01-21 20:23:52 +01:00
Mark Karpilovskij
6d1d86eb89 libdnssec: relax the fixed length condition for key ID 2019-01-21 14:30:17 +01:00
Daniel Salzman
3d1e98edb1 tests: improve temporary directory cleanup 2019-01-21 12:35:24 +01:00
Daniel Salzman
73ccd974a6 libdnssec: unify keystore function names 2019-01-21 11:46:40 +01:00
Daniel Salzman
e186e6cf59 libdnssec: remove unused keystore listing 2019-01-21 10:49:34 +01:00
Daniel Salzman
3171f32fa8 libdnssec: remove PKCS #8 keystore abstraction 2019-01-21 10:49:34 +01:00
Daniel Salzman
eb5af5aeb6 semchecks: adapt to multiple CDS/CDNSKEY feature 2019-01-17 14:23:23 +01:00
Daniel Salzman
25dcdd7485 Revert "add GOST algorithm support"
Nowadays the DNS comunity is not interested in GOST. Also this change is not
compatible (see https://gitlab.com/gnutls/gnutls/merge_requests/755).

This reverts commit da5615556c.
2019-01-07 14:00:41 +01:00
Mark Karpilovskij
be4fe5c38d tests: extend the ACL unit test with new features 2018-12-19 20:46:45 +01:00
Mark Karpilovskij
99887bc04c acl: implemented update owner and type granularity 2018-12-19 19:08:18 +01:00
Daniel Salzman
eecdcb55d8 time: add UTC time zone to ISO 8601 2018-12-18 12:00:54 +01:00
Libor Peltan
9ec432e988 Adjust refactor 2018-12-04 14:20:29 +00:00
Daniel Salzman
429511220d Merge branch 'journal_drop_irrelavant' into 'master'
journal: drop when any axfr-like change to zone

See merge request knot/knot-dns!957
2018-12-04 10:08:03 +00:00
Libor Peltan
0e8b3c40ce journal: drop when any axfr-like change to zone 2018-12-04 10:31:31 +01:00
Daniel Salzman
2d9d9f9092 Add -Wshadow to default CFLAGS + adapt code 2018-12-03 16:18:58 +01:00
Daniel Salzman
073e75812c zscanner: add comment callback processing support 2018-11-06 11:12:08 +01:00
Daniel Salzman
0afdb24c45 requestor: code cleanup 2018-10-26 16:12:39 +02:00
Daniel Salzman
de7d217d31 knotd: add configurable answer rrset rotation determined by a query ID
close #612
2018-10-07 21:25:52 +02:00
Daniel Salzman
1c4c59083b yparser: add support for backslashed characters in item value
Backslash character before quotation character is removed during parsing.

This feature is useful for the GeoIP module.
2018-10-03 22:59:30 +02:00
Daniel Salzman
37193f831b Makefile: move _LIBS from _LDFLAGS to _LIBADD + cleanup 2018-09-07 10:20:52 +02:00
Vladimír Čunát
da5615556c
add GOST algorithm support
The other `#ifdef HAVE_*` were moved in switches,
so that they don't rely on being the last before `default:`

The tests needed fixing up cases of using GOST as invalid values.
2018-08-30 15:04:36 +02:00
Mark Karpilovskij
43d02901bb libdnssec: hardcode key sizes for curve algorithms
closes #602
2018-08-30 11:19:16 +02:00
Daniel Kahn Gillmor
846bb431d2 use https://www.gnu.org instead of http://www.gnu.org
www.gnu.org has offered https for years now.
2018-08-29 09:45:57 -04:00
Tony Finch
1bc0971122 trie: support for copy-on-write transactions
A COW transaction allows a trie to be used for reading concurrently
while a modified version of the trie is being prepared. The change
can be committed by swapping the new trie root in place of the old one.

Internally, this feature uses one bit reference counts to identify which
parts of the trie are shared between the old and new versions, which
parts are new-only (so can be mutated) and which parts are old-only
(and will be free()d after commit).
2018-08-20 14:48:35 +02:00
Tony Finch
e7b7e187a3 trie: refactor to prepare for copy-on-write support
No functional change.

The point of this commit is to make it possible to stash a few
flags in leaf nodes as well as branch nodes, though we don't
yet exercise this possibility in any meaningful way.

This fixes a foolish mistake in the original qp trie data structure
declarations: the combination of unions and bitfields is a complete
disaster for portability, and it gets into dangerous territory wrt
compiler optimization. Instead, we just use a big enough word (uint64_t)
which is broken up into fields using accessor macros and inline functions,
and cast it to a pointer when necessary. We don't actually care about
the detailed layout in memory, just the numeric value, so a union was
the wrong tool.
2018-08-20 14:48:35 +02:00
Mark Karpilovskij
ca2f2ea047 tests/libdnssec: Rewrite NSEC bitmap test and make it extensible. 2018-08-18 15:12:56 +02:00
Vladimír Čunát
0de77d6277 test_dname: test knot_dname_in_bailiwick()
... instead of knot_dname_is_sub()
2018-08-01 20:55:27 +02:00
Daniel Salzman
5ae344a5c1 libknot/pkt: make knot_pkt_parse_question public (for Knot Resolver) 2018-07-20 10:44:39 +02:00
Daniel Salzman
7fb699e109 tests: fix warnings if NDEBUG 2018-07-12 14:04:58 +02:00
Daniel Salzman
8ebd8667d2 Adapt to new rrtype and rdataset API 2018-07-11 21:24:43 +02:00
Daniel Salzman
6d2a6fed19 libknot/rdataset: remove redundant function knot_rdataset_sort_at (rdataset is already sorted) 2018-07-11 21:21:52 +02:00
Daniel Salzman
94ae366b28 libknot/rdataset: rename structure items 2018-07-04 21:02:58 +02:00
Daniel Salzman
fedacab111 tests: fix omitted NSEC3 chain in some semantic tests 2018-06-12 16:19:08 +02:00
Daniel Salzman
136f065332 yparser: add support for dname key value 2018-06-12 13:43:06 +02:00
Daniel Salzman
625ed8d558 rrset-wire: replace knot_dname_parse with simplified implementation 2018-06-11 10:31:44 +02:00
Daniel Salzman
dd54723b14 pkt: make private parsing functions static 2018-06-11 10:12:11 +02:00
Daniel Salzman
c6f4b2941a rrset-wire: header cleanup 2018-06-06 12:21:33 +02:00
Daniel Salzman
ffc9b4eac7 conf: remove useless mm_ctx 2018-06-05 16:23:24 +02:00
Daniel Salzman
6ac2bad0a7 Merge branch 'ecs_support' into 'master'
knot: add support for ECS EDNS option

See merge request knot/knot-dns!904
2018-05-22 10:16:19 +02:00