ROOT ${JEMALLOC_ROOT_DIR} MODULES jemalloc)
SET(WITH_JEMALLOC "1")
ENDIF()
+ProcessPackage(GTHREAD2 LIBRARY ghtread-2.0 INCLUDE glib.h
+ INCLUDE_SUFFIXES include/glib include/glib-2.0
+ ROOT ${GLIB_ROOT_DIR} MODULES gthread-2.0>=2.28)
ProcessPackage(GLIB2 LIBRARY glib-2.0 INCLUDE glib.h
INCLUDE_SUFFIXES include/glib include/glib-2.0
ROOT ${GLIB_ROOT_DIR} MODULES glib-2.0>=2.28)
-IF(GLIB_ROOT_DIR)
- LIST(APPEND RSPAMD_REQUIRED_LIBRARIES "-lpthread")
- LIST(APPEND RSPAMD_REQUIRED_LIBRARIES "-lffi")
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread")
-ENDIF()
IF(ENABLE_PCRE2 MATCHES "ON")
ProcessPackage(PCRE LIBRARY pcre2 INCLUDE pcre2.h INCLUDE_SUFFIXES include/pcre2
struct worker_s;
struct rspamd_external_libs_ctx;
struct rspamd_cryptobox_pubkey;
+struct rspamd_dns_resolver;
enum { VAL_UNDEF=0, VAL_TRUE, VAL_FALSE };
gdouble upstream_error_time; /**< rate of upstream errors */
gdouble upstream_revive_time; /**< revive timeout for upstreams */
struct upstream_ctx *ups_ctx; /**< upstream context */
+ struct rspamd_dns_resolver *dns_resolver; /**< dns resolver if loaded */
guint min_word_len; /**< minimum length of the word to be considered */
guint max_word_len; /**< maximum length of the word to be considered */
* @return {mempool} [memory pool](mempool.md) object
*/
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.
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),
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;
}