From: Marek VavrusÌŒa Date: Mon, 1 Jun 2015 08:50:36 +0000 (+0200) Subject: daemon/engine: enable NS reputation cache by default X-Git-Tag: v1.0.0-beta1~124^2~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fe67ebe7bc2619c12bc77c5dac1a5ca969e6d43e;p=thirdparty%2Fknot-resolver.git daemon/engine: enable NS reputation cache by default --- diff --git a/daemon/engine.c b/daemon/engine.c index 5b70184a3..e0d3742b6 100644 --- a/daemon/engine.c +++ b/daemon/engine.c @@ -24,6 +24,7 @@ #include "daemon/engine.h" #include "daemon/bindings.h" #include "daemon/ffimodule.h" +#include "lib/nsrep.h" #include "lib/cache.h" #include "lib/defines.h" @@ -157,6 +158,11 @@ static int init_resolver(struct engine *engine) { /* Open resolution context */ engine->resolver.modules = &engine->modules; + /* Open NS reputation cache */ + engine->resolver.nsrep = malloc(lru_size(kr_nsrep_lru_t, DEFAULT_NSREP_SIZE)); + if (engine->resolver.nsrep) { + lru_init(engine->resolver.nsrep, DEFAULT_NSREP_SIZE); + } /* Load basic modules */ engine_register(engine, "iterate"); @@ -238,6 +244,7 @@ void engine_deinit(struct engine *engine) network_deinit(&engine->net); kr_cache_close(&engine->resolver.cache); + lru_deinit(engine->resolver.nsrep); /* Unload modules. */ for (size_t i = 0; i < engine->modules.len; ++i) { diff --git a/daemon/engine.h b/daemon/engine.h index 063bdff9e..2f3b0794c 100644 --- a/daemon/engine.h +++ b/daemon/engine.h @@ -16,6 +16,11 @@ #pragma once +/* Magic defaults */ +#ifndef DEFAULT_NSREP_SIZE +#define DEFAULT_NSREP_SIZE 4096 /**< Default NS reputation cache size */ +#endif + /* * @internal These are forward decls to allow building modules with engine but without Lua. */