]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
Merge remote-tracking branch 'origin/6.0' into daemon-refactor-2
authorOto Šťáva <oto.stava@nic.cz>
Thu, 22 Jun 2023 07:43:18 +0000 (09:43 +0200)
committerOto Šťáva <oto.stava@nic.cz>
Thu, 22 Jun 2023 07:52:42 +0000 (09:52 +0200)
13 files changed:
1  2 
.gitlab-ci.yml
daemon/bindings/cache.c
daemon/bindings/net.c
daemon/lua/kres-gen-30.lua
daemon/lua/kres-gen-31.lua
daemon/lua/kres-gen-32.lua
daemon/lua/kres-gen.sh
daemon/main.c
lib/log.c
lib/log.h
lib/resolve.c
lib/resolve.h
modules/hints/hints.c

diff --cc .gitlab-ci.yml
index 6d8e769d4db3e10859012fcdc566034aed41e31a,53d730a1d6edd75357afba281093468896102014..69371e3140f19d44f69d99198e029f4aa25b1a5a
@@@ -253,7 -243,7 +243,7 @@@ lint:scan-build
    script:
      - export SCANBUILD="$(realpath ./scripts/run-scanbuild-with-args.sh)"
      - ninja -C build_ci* scan-build || true
-     - test "$(ls build_ci*/meson-logs/scanbuild/*/report-*.html | wc -l)" = 20 # we have this many errors ATM :-)
 -    - test "$(ls build_ci*/meson-logs/scanbuild/*/report-*.html | wc -l)" = 24 # we have this many errors ATM :-)
++    - test "$(ls build_ci*/meson-logs/scanbuild/*/report-*.html | wc -l)" = 23 # we have this many errors ATM :-)
  
  lint:tidy:
    <<: *after_build
index 21ef2ad26def49d5c5fc3bb6c23d525e65ea7ee3,7247076795340ecf09a6a9dc70b69402f93a1573..602974b4c9367341e7e91f0d35541aec7ccf94f3
@@@ -186,10 -190,11 +186,11 @@@ static int cache_open(lua_State *L
  
        /* Reopen cache */
        struct kr_cdb_opts opts = {
-               (conf && strlen(conf)) ? conf : ".",
-               cache_size
+               .is_cache = true,
+               .path = (conf && strlen(conf)) ? conf : ".",
+               .maxsize = cache_size,
        };
 -      int ret = kr_cache_open(&engine->resolver.cache, api, &opts, engine->pool);
 +      int ret = kr_cache_open(&the_resolver->cache, api, &opts, &the_engine->pool);
        if (ret != 0) {
                char cwd[PATH_MAX];
                get_workdir(cwd, sizeof(cwd));
Simple merge
index 77063727918d6d54145f63e9e04942afb79e2746,0a26f7ea7648243920a8982ae4422f77fa0fff62..97d32233f0472bb37cb53cd1d47058e49cdd1c3c
@@@ -314,7 -338,14 +338,14 @@@ struct kr_server_selection 
        struct local_state *local_state;
  };
  typedef int kr_log_level_t;
- enum kr_log_group {LOG_GRP_UNKNOWN = -1, LOG_GRP_SYSTEM = 1, LOG_GRP_CACHE, LOG_GRP_IO, LOG_GRP_NETWORK, LOG_GRP_TA, LOG_GRP_TLS, LOG_GRP_GNUTLS, LOG_GRP_TLSCLIENT, LOG_GRP_XDP, LOG_GRP_DOH, LOG_GRP_DNSSEC, LOG_GRP_HINT, LOG_GRP_PLAN, LOG_GRP_ITERATOR, LOG_GRP_VALIDATOR, LOG_GRP_RESOLVER, LOG_GRP_SELECTION, LOG_GRP_ZCUT, LOG_GRP_COOKIES, LOG_GRP_STATISTICS, LOG_GRP_REBIND, LOG_GRP_WORKER, LOG_GRP_POLICY, LOG_GRP_TASENTINEL, LOG_GRP_TASIGNALING, LOG_GRP_TAUPDATE, LOG_GRP_DAF, LOG_GRP_DETECTTIMEJUMP, LOG_GRP_DETECTTIMESKEW, LOG_GRP_GRAPHITE, LOG_GRP_PREFILL, LOG_GRP_PRIMING, LOG_GRP_SRVSTALE, LOG_GRP_WATCHDOG, LOG_GRP_NSID, LOG_GRP_DNSTAP, LOG_GRP_TESTS, LOG_GRP_DOTAUTH, LOG_GRP_HTTP, LOG_GRP_CONTROL, LOG_GRP_MODULE, LOG_GRP_DEVEL, LOG_GRP_RENUMBER, LOG_GRP_EDE, LOG_GRP_PROTOLAYER, LOG_GRP_REQDBG};
 -enum kr_log_group {LOG_GRP_UNKNOWN = -1, LOG_GRP_SYSTEM = 1, LOG_GRP_CACHE, LOG_GRP_IO, LOG_GRP_NETWORK, LOG_GRP_TA, LOG_GRP_TLS, LOG_GRP_GNUTLS, LOG_GRP_TLSCLIENT, LOG_GRP_XDP, LOG_GRP_DOH, LOG_GRP_DNSSEC, LOG_GRP_HINT, LOG_GRP_PLAN, LOG_GRP_ITERATOR, LOG_GRP_VALIDATOR, LOG_GRP_RESOLVER, LOG_GRP_SELECTION, LOG_GRP_ZCUT, LOG_GRP_COOKIES, LOG_GRP_STATISTICS, LOG_GRP_REBIND, LOG_GRP_WORKER, LOG_GRP_POLICY, LOG_GRP_TASENTINEL, LOG_GRP_TASIGNALING, LOG_GRP_TAUPDATE, LOG_GRP_DAF, LOG_GRP_DETECTTIMEJUMP, LOG_GRP_DETECTTIMESKEW, LOG_GRP_GRAPHITE, LOG_GRP_PREFILL, LOG_GRP_PRIMING, LOG_GRP_SRVSTALE, LOG_GRP_WATCHDOG, LOG_GRP_NSID, LOG_GRP_DNSTAP, LOG_GRP_TESTS, LOG_GRP_DOTAUTH, LOG_GRP_HTTP, LOG_GRP_CONTROL, LOG_GRP_MODULE, LOG_GRP_DEVEL, LOG_GRP_RENUMBER, LOG_GRP_EDE, LOG_GRP_RULES, LOG_GRP_REQDBG};
++enum kr_log_group {LOG_GRP_UNKNOWN = -1, LOG_GRP_SYSTEM = 1, LOG_GRP_CACHE, LOG_GRP_IO, LOG_GRP_NETWORK, LOG_GRP_TA, LOG_GRP_TLS, LOG_GRP_GNUTLS, LOG_GRP_TLSCLIENT, LOG_GRP_XDP, LOG_GRP_DOH, LOG_GRP_DNSSEC, LOG_GRP_HINT, LOG_GRP_PLAN, LOG_GRP_ITERATOR, LOG_GRP_VALIDATOR, LOG_GRP_RESOLVER, LOG_GRP_SELECTION, LOG_GRP_ZCUT, LOG_GRP_COOKIES, LOG_GRP_STATISTICS, LOG_GRP_REBIND, LOG_GRP_WORKER, LOG_GRP_POLICY, LOG_GRP_TASENTINEL, LOG_GRP_TASIGNALING, LOG_GRP_TAUPDATE, LOG_GRP_DAF, LOG_GRP_DETECTTIMEJUMP, LOG_GRP_DETECTTIMESKEW, LOG_GRP_GRAPHITE, LOG_GRP_PREFILL, LOG_GRP_PRIMING, LOG_GRP_SRVSTALE, LOG_GRP_WATCHDOG, LOG_GRP_NSID, LOG_GRP_DNSTAP, LOG_GRP_TESTS, LOG_GRP_DOTAUTH, LOG_GRP_HTTP, LOG_GRP_CONTROL, LOG_GRP_MODULE, LOG_GRP_DEVEL, LOG_GRP_RENUMBER, LOG_GRP_EDE, LOG_GRP_RULES, LOG_GRP_PROTOLAYER, LOG_GRP_REQDBG};
+ struct kr_query_data_src {
+       _Bool initialized;
+       _Bool all_set;
+       uint8_t rule_depth;
+       kr_rule_fwd_flags_t flags;
+       knot_db_val_t targets_ptr;
+ };
  
  kr_layer_t kr_layer_t_static;
  _Bool kr_dbg_assertion_abort;
index 2a90f839c0a2057d8c1fe32ab226fc77aa3fdf2b,605e225d80301f7d7fd4f94c2b2ab4609b10c77f..91c7071a5a599a236c48573eb4687bab0382021b
@@@ -314,7 -338,14 +338,14 @@@ struct kr_server_selection 
        struct local_state *local_state;
  };
  typedef int kr_log_level_t;
- enum kr_log_group {LOG_GRP_UNKNOWN = -1, LOG_GRP_SYSTEM = 1, LOG_GRP_CACHE, LOG_GRP_IO, LOG_GRP_NETWORK, LOG_GRP_TA, LOG_GRP_TLS, LOG_GRP_GNUTLS, LOG_GRP_TLSCLIENT, LOG_GRP_XDP, LOG_GRP_DOH, LOG_GRP_DNSSEC, LOG_GRP_HINT, LOG_GRP_PLAN, LOG_GRP_ITERATOR, LOG_GRP_VALIDATOR, LOG_GRP_RESOLVER, LOG_GRP_SELECTION, LOG_GRP_ZCUT, LOG_GRP_COOKIES, LOG_GRP_STATISTICS, LOG_GRP_REBIND, LOG_GRP_WORKER, LOG_GRP_POLICY, LOG_GRP_TASENTINEL, LOG_GRP_TASIGNALING, LOG_GRP_TAUPDATE, LOG_GRP_DAF, LOG_GRP_DETECTTIMEJUMP, LOG_GRP_DETECTTIMESKEW, LOG_GRP_GRAPHITE, LOG_GRP_PREFILL, LOG_GRP_PRIMING, LOG_GRP_SRVSTALE, LOG_GRP_WATCHDOG, LOG_GRP_NSID, LOG_GRP_DNSTAP, LOG_GRP_TESTS, LOG_GRP_DOTAUTH, LOG_GRP_HTTP, LOG_GRP_CONTROL, LOG_GRP_MODULE, LOG_GRP_DEVEL, LOG_GRP_RENUMBER, LOG_GRP_EDE, LOG_GRP_PROTOLAYER, LOG_GRP_REQDBG};
 -enum kr_log_group {LOG_GRP_UNKNOWN = -1, LOG_GRP_SYSTEM = 1, LOG_GRP_CACHE, LOG_GRP_IO, LOG_GRP_NETWORK, LOG_GRP_TA, LOG_GRP_TLS, LOG_GRP_GNUTLS, LOG_GRP_TLSCLIENT, LOG_GRP_XDP, LOG_GRP_DOH, LOG_GRP_DNSSEC, LOG_GRP_HINT, LOG_GRP_PLAN, LOG_GRP_ITERATOR, LOG_GRP_VALIDATOR, LOG_GRP_RESOLVER, LOG_GRP_SELECTION, LOG_GRP_ZCUT, LOG_GRP_COOKIES, LOG_GRP_STATISTICS, LOG_GRP_REBIND, LOG_GRP_WORKER, LOG_GRP_POLICY, LOG_GRP_TASENTINEL, LOG_GRP_TASIGNALING, LOG_GRP_TAUPDATE, LOG_GRP_DAF, LOG_GRP_DETECTTIMEJUMP, LOG_GRP_DETECTTIMESKEW, LOG_GRP_GRAPHITE, LOG_GRP_PREFILL, LOG_GRP_PRIMING, LOG_GRP_SRVSTALE, LOG_GRP_WATCHDOG, LOG_GRP_NSID, LOG_GRP_DNSTAP, LOG_GRP_TESTS, LOG_GRP_DOTAUTH, LOG_GRP_HTTP, LOG_GRP_CONTROL, LOG_GRP_MODULE, LOG_GRP_DEVEL, LOG_GRP_RENUMBER, LOG_GRP_EDE, LOG_GRP_RULES, LOG_GRP_REQDBG};
++enum kr_log_group {LOG_GRP_UNKNOWN = -1, LOG_GRP_SYSTEM = 1, LOG_GRP_CACHE, LOG_GRP_IO, LOG_GRP_NETWORK, LOG_GRP_TA, LOG_GRP_TLS, LOG_GRP_GNUTLS, LOG_GRP_TLSCLIENT, LOG_GRP_XDP, LOG_GRP_DOH, LOG_GRP_DNSSEC, LOG_GRP_HINT, LOG_GRP_PLAN, LOG_GRP_ITERATOR, LOG_GRP_VALIDATOR, LOG_GRP_RESOLVER, LOG_GRP_SELECTION, LOG_GRP_ZCUT, LOG_GRP_COOKIES, LOG_GRP_STATISTICS, LOG_GRP_REBIND, LOG_GRP_WORKER, LOG_GRP_POLICY, LOG_GRP_TASENTINEL, LOG_GRP_TASIGNALING, LOG_GRP_TAUPDATE, LOG_GRP_DAF, LOG_GRP_DETECTTIMEJUMP, LOG_GRP_DETECTTIMESKEW, LOG_GRP_GRAPHITE, LOG_GRP_PREFILL, LOG_GRP_PRIMING, LOG_GRP_SRVSTALE, LOG_GRP_WATCHDOG, LOG_GRP_NSID, LOG_GRP_DNSTAP, LOG_GRP_TESTS, LOG_GRP_DOTAUTH, LOG_GRP_HTTP, LOG_GRP_CONTROL, LOG_GRP_MODULE, LOG_GRP_DEVEL, LOG_GRP_RENUMBER, LOG_GRP_EDE, LOG_GRP_RULES, LOG_GRP_PROTOLAYER, LOG_GRP_REQDBG};
+ struct kr_query_data_src {
+       _Bool initialized;
+       _Bool all_set;
+       uint8_t rule_depth;
+       kr_rule_fwd_flags_t flags;
+       knot_db_val_t targets_ptr;
+ };
  
  kr_layer_t kr_layer_t_static;
  _Bool kr_dbg_assertion_abort;
index 5c7ab7dfe753c72f191e6db59d317e996d937449,bd7d2c3008e6d5c8968d773aa1bb3bce3f6f2276..c87fc5a6f3bbd589bc6dda2e3b3a76a322f8046d
@@@ -315,7 -339,14 +339,14 @@@ struct kr_server_selection 
        struct local_state *local_state;
  };
  typedef int kr_log_level_t;
- enum kr_log_group {LOG_GRP_UNKNOWN = -1, LOG_GRP_SYSTEM = 1, LOG_GRP_CACHE, LOG_GRP_IO, LOG_GRP_NETWORK, LOG_GRP_TA, LOG_GRP_TLS, LOG_GRP_GNUTLS, LOG_GRP_TLSCLIENT, LOG_GRP_XDP, LOG_GRP_DOH, LOG_GRP_DNSSEC, LOG_GRP_HINT, LOG_GRP_PLAN, LOG_GRP_ITERATOR, LOG_GRP_VALIDATOR, LOG_GRP_RESOLVER, LOG_GRP_SELECTION, LOG_GRP_ZCUT, LOG_GRP_COOKIES, LOG_GRP_STATISTICS, LOG_GRP_REBIND, LOG_GRP_WORKER, LOG_GRP_POLICY, LOG_GRP_TASENTINEL, LOG_GRP_TASIGNALING, LOG_GRP_TAUPDATE, LOG_GRP_DAF, LOG_GRP_DETECTTIMEJUMP, LOG_GRP_DETECTTIMESKEW, LOG_GRP_GRAPHITE, LOG_GRP_PREFILL, LOG_GRP_PRIMING, LOG_GRP_SRVSTALE, LOG_GRP_WATCHDOG, LOG_GRP_NSID, LOG_GRP_DNSTAP, LOG_GRP_TESTS, LOG_GRP_DOTAUTH, LOG_GRP_HTTP, LOG_GRP_CONTROL, LOG_GRP_MODULE, LOG_GRP_DEVEL, LOG_GRP_RENUMBER, LOG_GRP_EDE, LOG_GRP_PROTOLAYER, LOG_GRP_REQDBG};
 -enum kr_log_group {LOG_GRP_UNKNOWN = -1, LOG_GRP_SYSTEM = 1, LOG_GRP_CACHE, LOG_GRP_IO, LOG_GRP_NETWORK, LOG_GRP_TA, LOG_GRP_TLS, LOG_GRP_GNUTLS, LOG_GRP_TLSCLIENT, LOG_GRP_XDP, LOG_GRP_DOH, LOG_GRP_DNSSEC, LOG_GRP_HINT, LOG_GRP_PLAN, LOG_GRP_ITERATOR, LOG_GRP_VALIDATOR, LOG_GRP_RESOLVER, LOG_GRP_SELECTION, LOG_GRP_ZCUT, LOG_GRP_COOKIES, LOG_GRP_STATISTICS, LOG_GRP_REBIND, LOG_GRP_WORKER, LOG_GRP_POLICY, LOG_GRP_TASENTINEL, LOG_GRP_TASIGNALING, LOG_GRP_TAUPDATE, LOG_GRP_DAF, LOG_GRP_DETECTTIMEJUMP, LOG_GRP_DETECTTIMESKEW, LOG_GRP_GRAPHITE, LOG_GRP_PREFILL, LOG_GRP_PRIMING, LOG_GRP_SRVSTALE, LOG_GRP_WATCHDOG, LOG_GRP_NSID, LOG_GRP_DNSTAP, LOG_GRP_TESTS, LOG_GRP_DOTAUTH, LOG_GRP_HTTP, LOG_GRP_CONTROL, LOG_GRP_MODULE, LOG_GRP_DEVEL, LOG_GRP_RENUMBER, LOG_GRP_EDE, LOG_GRP_RULES, LOG_GRP_REQDBG};
++enum kr_log_group {LOG_GRP_UNKNOWN = -1, LOG_GRP_SYSTEM = 1, LOG_GRP_CACHE, LOG_GRP_IO, LOG_GRP_NETWORK, LOG_GRP_TA, LOG_GRP_TLS, LOG_GRP_GNUTLS, LOG_GRP_TLSCLIENT, LOG_GRP_XDP, LOG_GRP_DOH, LOG_GRP_DNSSEC, LOG_GRP_HINT, LOG_GRP_PLAN, LOG_GRP_ITERATOR, LOG_GRP_VALIDATOR, LOG_GRP_RESOLVER, LOG_GRP_SELECTION, LOG_GRP_ZCUT, LOG_GRP_COOKIES, LOG_GRP_STATISTICS, LOG_GRP_REBIND, LOG_GRP_WORKER, LOG_GRP_POLICY, LOG_GRP_TASENTINEL, LOG_GRP_TASIGNALING, LOG_GRP_TAUPDATE, LOG_GRP_DAF, LOG_GRP_DETECTTIMEJUMP, LOG_GRP_DETECTTIMESKEW, LOG_GRP_GRAPHITE, LOG_GRP_PREFILL, LOG_GRP_PRIMING, LOG_GRP_SRVSTALE, LOG_GRP_WATCHDOG, LOG_GRP_NSID, LOG_GRP_DNSTAP, LOG_GRP_TESTS, LOG_GRP_DOTAUTH, LOG_GRP_HTTP, LOG_GRP_CONTROL, LOG_GRP_MODULE, LOG_GRP_DEVEL, LOG_GRP_RENUMBER, LOG_GRP_EDE, LOG_GRP_RULES, LOG_GRP_PROTOLAYER, LOG_GRP_REQDBG};
+ struct kr_query_data_src {
+       _Bool initialized;
+       _Bool all_set;
+       uint8_t rule_depth;
+       kr_rule_fwd_flags_t flags;
+       knot_db_val_t targets_ptr;
+ };
  
  kr_layer_t kr_layer_t_static;
  _Bool kr_dbg_assertion_abort;
Simple merge
diff --cc daemon/main.c
index af7c920e6a6ecf4892e3e58c4947d8b0cb0a5371,d1e9f57d6814a822478a41ce09992b5aed988d12..efbe8e55aa0e524cfa6070d820a3942e427ac089
@@@ -61,14 -58,12 +63,20 @@@ KR_EXPORT void kr_jemalloc_unused(void
  KR_EXPORT const char *malloc_conf = "narenas:1";
  #endif
  
 +/**@internal Maximum number of incomplete TCP connections in queue.
 +* Default is from empirical testing - in our case, more isn't necessarily better.
 +* See https://gitlab.nic.cz/knot/knot-resolver/-/merge_requests/968
 +* */
 +#ifndef TCP_BACKLOG_DEFAULT
 +#define TCP_BACKLOG_DEFAULT 128
 +#endif
 +
+ /** I don't know why linker is dropping this _zonefile function otherwise. TODO: revisit. */
+ KR_EXPORT void kr_misc_unused(void)
+ {
+       kr_rule_zonefile(NULL);
+ }
  struct args the_args_value;  /** Static allocation for the_args singleton. */
  
  static void signal_handler(uv_signal_t *handle, int signum)
@@@ -606,12 -589,20 +614,20 @@@ int main(int argc, char **argv
                        ret = EXIT_FAILURE;
                        goto cleanup;
                }
 -              lua_settop(engine.L, 0);
 +              lua_settop(the_engine->L, 0);
        }
  
+       ret = kr_rules_init_ensure();
+       if (ret) {
+               kr_log_error(RULES, "failed to initialize policy rule engine: %s\n",
+                               kr_strerror(ret));
+               ret = EXIT_FAILURE;
+               goto cleanup;
+       }
        drop_capabilities();
  
 -      if (engine_start(&engine) != 0) {
 +      if (engine_start() != 0) {
                ret = EXIT_FAILURE;
                goto cleanup;
        }
                goto cleanup;
        }
  
+       /* Starting everything succeeded, so commit rule DB changes. */
+       kr_rules_commit(true);
        /* Run the event loop */
 -      ret = run_worker(loop, &engine, fork_id == 0, the_args);
 +      ret = run_worker(loop, fork_id == 0, the_args);
  
  cleanup:/* Cleanup. */
 -      engine_deinit(&engine);
 +      network_unregister();
 +
 +      kr_resolver_deinit();
        worker_deinit();
 +      engine_deinit();
 +      network_deinit();
+       kr_rules_commit(false);
+       kr_rules_deinit();
        if (loop != NULL) {
                uv_loop_close(loop);
        }
diff --cc lib/log.c
index 57efcfb0b0905911548cf76793b0c42244d9720d,dd32dcb7e8b52f1ac5002a82b1d7e2b6521f7b2e..ad4215f9cb0efad5cccc858ef4785522e3249162
+++ b/lib/log.c
@@@ -78,7 -78,7 +78,8 @@@ const log_group_names_t log_group_names
        GRP_NAME_ITEM(LOG_GRP_DEVEL),
        GRP_NAME_ITEM(LOG_GRP_RENUMBER),
        GRP_NAME_ITEM(LOG_GRP_EDE),
+       GRP_NAME_ITEM(LOG_GRP_RULES),
 +      GRP_NAME_ITEM(LOG_GRP_PROTOLAYER),
        GRP_NAME_ITEM(LOG_GRP_REQDBG),
        { NULL, LOG_GRP_UNKNOWN },
  };
diff --cc lib/log.h
index 954f74a6700b236fa9e11c92fe29ae484954f725,5a9bfddc8fe56d240feeec28af7241b26198c272..713d3f8908b86fb7825cb08827c0cb58e2846511
+++ b/lib/log.h
@@@ -79,7 -79,7 +79,8 @@@ enum kr_log_group 
        LOG_GRP_DEVEL,
        LOG_GRP_RENUMBER,
        LOG_GRP_EDE,
+       LOG_GRP_RULES,
 +      LOG_GRP_PROTOLAYER,
        /* ^^ Add new log groups above ^^. */
        LOG_GRP_REQDBG, /* Must be first non-displayed entry in enum! */
  };
  #define LOG_GRP_DEVEL_TAG             "devel"         /**< ``devel``: for development purposes */
  #define LOG_GRP_RENUMBER_TAG          "renum"         /**< ``renum``: operation related to renumber */
  #define LOG_GRP_EDE_TAG                       "exterr"        /**< ``exterr``: extended error module */
+ #define LOG_GRP_RULES_TAG             "rules"         /**< ``rules``: new policy rules (their processing) */
 +#define LOG_GRP_PROTOLAYER_TAG                "prlayr"        /**< ``prlayr``: protocol layer system (session2) */
  #define LOG_GRP_REQDBG_TAG            "reqdbg"        /**< ``reqdbg``: debug logs enabled by policy actions */
  ///@}
  
diff --cc lib/resolve.c
index bbda5e1f0b81f1b4860f261bb4655b72b6e4a132,caab054fc9159a755cad0b9b2a934935aeda11fc..9dd7ae6ea84c45c1dd9229ef297254d6cf49be8d
  #define KNOT_EDNS_OPTION_COOKIE 10
  #endif /* ENABLE_COOKIES */
  
- #define VERBOSE_MSG(qry, ...) kr_log_q((qry), RESOLVER,  __VA_ARGS__)
 +/** Magic defaults */
 +#ifndef LRU_RTT_SIZE
 +#define LRU_RTT_SIZE 65536 /**< NS RTT cache size */
 +#endif
 +#ifndef LRU_REP_SIZE
 +#define LRU_REP_SIZE (LRU_RTT_SIZE / 4) /**< NS reputation cache size */
 +#endif
 +#ifndef LRU_COOKIES_SIZE
 +      #if ENABLE_COOKIES
 +      #define LRU_COOKIES_SIZE LRU_RTT_SIZE /**< DNS cookies cache size. */
 +      #else
 +      #define LRU_COOKIES_SIZE LRU_ASSOC /* simpler than guards everywhere */
 +      #endif
 +#endif
 +
 +static struct kr_context the_resolver_value = {{0}};
 +struct kr_context *the_resolver = NULL;
 +
  bool kr_rank_check(uint8_t rank)
  {
        switch (rank & ~KR_RANK_AUTH) {
diff --cc lib/resolve.h
Simple merge
Simple merge