From: Marek VavruĊĦa Date: Thu, 23 Apr 2015 12:33:00 +0000 (+0200) Subject: daemon/engine: unload module if loaded X-Git-Tag: v1.0.0-beta1~230 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e79ca30a8030f341da06946e32ac59c2f4b46554;p=thirdparty%2Fknot-resolver.git daemon/engine: unload module if loaded --- diff --git a/daemon/engine.c b/daemon/engine.c index 10ed169d0..f5a48f0aa 100644 --- a/daemon/engine.c +++ b/daemon/engine.c @@ -289,6 +289,9 @@ int engine_register(struct engine *engine, const char *name) return kr_error(EINVAL); } + /* Make sure module is unloaded */ + (void) engine_unregister(engine, name); + /* Load module */ size_t next = engine->modules.len; array_reserve(engine->modules, next + 1); @@ -324,6 +327,8 @@ int engine_unregister(struct engine *engine, const char *name) if (found < mod_list->len) { kr_module_unload(&mod_list->at[found]); array_del(*mod_list, found); + lua_pushnil(engine->L); + lua_setglobal(engine->L, name); return kr_ok(); }