]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
lib/resolve: backport `the_resolver` symbol
authorVladimír Čunát <vladimir.cunat@nic.cz>
Wed, 13 May 2026 09:08:41 +0000 (11:08 +0200)
committerVladimír Čunát <vladimir.cunat@nic.cz>
Wed, 13 May 2026 10:38:54 +0000 (12:38 +0200)
It's trivial to add this simple pointer,
and it will tremendously help with the following commit.

daemon/engine.c
lib/resolve.c
lib/resolve.h

index 8c00a5befdf351d1167a16385129c33f146a1bd3..67d1e9e338ff29a8f26b2997c3f96b546280bec2 100644 (file)
@@ -645,6 +645,7 @@ int engine_init(struct engine *engine, knot_mm_t *pool)
                engine_deinit(engine);
                return ret;
        }
+       the_resolver = &engine->resolver;
        /* Initialize network */
        network_init(&engine->net, uv_default_loop(), TCP_BACKLOG_DEFAULT);
 
@@ -685,6 +686,7 @@ void engine_deinit(struct engine *engine)
        for (size_t i = 0; i < engine->modules.len; ++i) {
                engine_unload(engine, engine->modules.at[i]);
        }
+       the_resolver = NULL;
        kr_zonecut_deinit(&engine->resolver.root_hints);
        kr_cache_close(&engine->resolver.cache);
 
index 1a3ce34592e782b3697cd4578446bcb61ed4034e..b54af8436ee6505bc209a7f206398ed2e8ed5761 100644 (file)
@@ -27,6 +27,8 @@
 
 #define VERBOSE_MSG(qry, ...) kr_log_q((qry), RESOLVER,  __VA_ARGS__)
 
+struct kr_context *the_resolver = NULL;
+
 bool kr_rank_check(uint8_t rank)
 {
        switch (rank & ~KR_RANK_AUTH) {
index a2d5ec9dbd3b599f55141e538b198ccf9712bb19..6fea0bacdc383a1040b4d622b4de3de045073959 100644 (file)
@@ -177,6 +177,9 @@ struct kr_context
        knot_mm_t *pool;
 };
 
+/** Pointer to the singleton resolver context. NULL if not initialized */
+KR_EXPORT extern struct kr_context *the_resolver;
+
 /* Kept outside, because kres-gen.lua can't handle this depth
  * (and lines here were too long anyway). */
 struct kr_request_qsource_flags {