- 24 Sep, 2019 1 commit
-
-
Vladimír Čunát authored
This reverts commit 196ebd4f. It was buggy, and I can't simply recover the intended effect.
-
- 20 Sep, 2019 2 commits
-
-
Vladimír Čunát authored
A down-side is that validation can now modify the validated RRset on success. I checked all transitive call sites that it's OK. The change is pretty simple; I just hand-tested it a bit with faketime.
-
Vladimír Čunát authored
It's fairly easy to keep keep compatible with both 2.8 and 2.9, so I'd go for that for now, as it may be practical.
-
- 14 Aug, 2019 1 commit
-
-
Vladimír Čunát authored
As kresd works now, typically we do not know whether these records are bogus, as with +cd we do not attempt validation. Still, it's possible that we have those records in cache from an occasion without +cd, in which case we know they're bogus and this regression happened. The potential impact of this issue seems minimal.
-
- 23 Jul, 2019 3 commits
-
-
Vladimír Čunát authored
Somehow I didn't notice this field when adding ::add_selected. We probably never put anything into answer's ADDITIONAL, so noone's noticed a problem until now.
-
Vladimír Čunát authored
-
Vladimír Čunát authored
We currently allow modules to produce a packet beforehand, but the possibility was rather implicit in this part of code. In particular, we might possible trigger a false alarm in assert(answer->current <= KNOT_ANSWER)
-
- 20 Jul, 2019 1 commit
-
-
Petr Špaček authored
-
- 10 Jul, 2019 8 commits
-
-
Vladimír Čunát authored
-
Vladimír Čunát authored
Basically all use cases get renamed to *_E(), except one in utils/kr_cache_gc. It was perhaps confusing that this name only applied to 'E' entries.
-
Libor Peltan authored
-
Petr Špaček authored
This reverts commit c3a754dd, reversing changes made to 06d01bf0. I've have accidentally merged incorrect branch, let's try to fix that by reverting incorrect version of GC and merging the correct one.
-
Vladimír Čunát authored
-
Vladimír Čunát authored
Don't stash a packet with mismatching QNAME+QTYPE. When receiving an NXDOMAIN or NODATA packet in an insecure zone, it would get cached with KR_RANK_INSECURE regardless of mismatch in QNAME. If the 0x20 pattern was preserved in the fake QNAME, such packet would then be used to answer queries with matching QNAME, even if there's no proof that this QNAME is insecure.
-
Vladimír Čunát authored
Cache uses dname_lf for keys, i.e. zero bytes serve as separators between labels. Therefore having a zero inside label could masquerade for QNAME that does have label separators instead of these zeros. That doesn't seem really exploitable in practice, as standard registries won't allow such labels, so I can't see any possible attack that would "cross border" of these registries, e.g. attacking anything inside example.org without any cooperation from its owner (or org or root).
-
Vladimír Čunát authored
Abnormally terminated processes might leave stale reader locks, and this is required to clear them.
-
- 03 Jul, 2019 5 commits
-
-
Petr Špaček authored
-
Vladimír Čunát authored
-
Vladimír Čunát authored
-
Vladimír Čunát authored
Basically all use cases get renamed to *_E(), except one in utils/kr_cache_gc. It was perhaps confusing that this name only applied to 'E' entries.
-
Libor Peltan authored
-
- 27 Jun, 2019 2 commits
-
-
Petr Špaček authored
-
Vladimír Čunát authored
We use packet cache instead. Also do the same on some kinds of weird RRsets, as even there some caching should be better than none at all. This "incidentally" works around all known cases of DVE-2018-0003.
-
- 25 Jun, 2019 5 commits
-
-
Vladimír Čunát authored
Returning void isn't allowed, apparently.
-
Vladimír Čunát authored
Mainly reduce duplication of state and request->state, and slightly reorganize the code.
-
Vladimír Čunát authored
This is a nitpick, basically.
-
Vladimír Čunát authored
This was almost all done during the IETF 104 hackathon.
-
Vladimír Čunát authored
I don't know any particular case where the bit-test would succeed and equality wouldn't, but it seems better to take no chances.
-
- 24 Jun, 2019 1 commit
-
-
Vladimír Čunát authored
and slightly better error reporting.
-
- 13 Jun, 2019 6 commits
-
-
Vladimír Čunát authored
Thanks to changes in this branch the functions are called with correctly typed parameters already, so these weird casts can be deleted.
-
Vladimír Čunát authored
This should have been a part of 176b1c28, but I forgot it somehow.
-
Vladimír Čunát authored
Theoretically a lua module could have used them, but I see no motivation for that, as they have much more convenient ways inside lua.
-
Vladimír Čunát authored
-
Vladimír Čunát authored
... without light userdata and yet it should be efficient. Also with checkout layer, but I have no nice way of testing that one.
-
Vladimír Čunát authored
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.
-
- 03 Jun, 2019 1 commit
-
-
Vladimír Čunát authored
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
-
- 30 May, 2019 1 commit
-
-
Vladimír Čunát authored
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
-
- 18 Apr, 2019 2 commits
-
-
Vladimír Čunát authored
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 :-)
-
Vladimír Čunát authored
We run meson with -std=gnu11, but apparently some compiler still complained about it. Unfortunately it wouldn't be easy to use standard C11 in this case.
-
- 17 Apr, 2019 1 commit
-
-
Vladimír Čunát authored
-