diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2017-01-27 12:13:10 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2017-01-27 12:18:41 +0000 |
commit | 49647df07c2dad4ae1560f9329cbbb0684c51127 (patch) | |
tree | 279da3790e519a8b248fb3121e0454327c07cc27 /src/lua | |
parent | 29d5197458ea29a5bc75e171f007c4ab889f0299 (diff) | |
download | rspamd-49647df07c2dad4ae1560f9329cbbb0684c51127.tar.gz rspamd-49647df07c2dad4ae1560f9329cbbb0684c51127.zip |
[Minor] Save resolver in config structure and allow to get it from Lua
Diffstat (limited to 'src/lua')
-rw-r--r-- | src/lua/lua_config.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/lua/lua_config.c b/src/lua/lua_config.c index 06157f44e..e5866d6ca 100644 --- a/src/lua/lua_config.c +++ b/src/lua/lua_config.c @@ -63,6 +63,12 @@ LUA_FUNCTION_DEF (config, get_all_opt); */ LUA_FUNCTION_DEF (config, get_mempool); /*** + * @method rspamd_config:get_resolver() + * Returns DNS resolver. + * @return {dns_resolver} opaque DNS resolver pointer if any + */ +LUA_FUNCTION_DEF (config, get_resolver); +/*** * @method rspamd_config:add_radix_map(mapline[, description]) * Creates new dynamic map of IP/mask addresses. * @param {string} mapline URL for a map @@ -595,6 +601,7 @@ LUA_FUNCTION_DEF (config, set_peak_cb); static const struct luaL_reg configlib_m[] = { LUA_INTERFACE_DEF (config, get_module_opt), LUA_INTERFACE_DEF (config, get_mempool), + LUA_INTERFACE_DEF (config, get_resolver), LUA_INTERFACE_DEF (config, get_all_opt), LUA_INTERFACE_DEF (config, add_radix_map), LUA_INTERFACE_DEF (config, radix_from_config), @@ -712,6 +719,27 @@ lua_config_get_mempool (lua_State * L) rspamd_lua_setclass (L, "rspamd{mempool}", -1); *ppool = cfg->cfg_pool; } + else { + lua_pushnil (L); + } + return 1; +} + +static int +lua_config_get_resolver (lua_State * L) +{ + struct rspamd_dns_resolver **pres; + struct rspamd_config *cfg = lua_check_config (L, 1); + + if (cfg != NULL && cfg->dns_resolver) { + pres = lua_newuserdata (L, sizeof (*pres)); + rspamd_lua_setclass (L, "rspamd{resolver}", -1); + *pres = cfg->dns_resolver; + } + else { + lua_pushnil (L); + } + return 1; } |