rspamd_snprintf (greetingbuf, sizeof (greetingbuf), "Rspamd version %s is running on %s" CRLF, RVERSION, hostbuf); | rspamd_snprintf (greetingbuf, sizeof (greetingbuf), "Rspamd version %s is running on %s" CRLF, RVERSION, hostbuf); | ||||
start_map_watch (worker->srv->cfg, ctx->ev_base); | start_map_watch (worker->srv->cfg, ctx->ev_base); | ||||
ctx->resolver = dns_resolver_init (ctx->ev_base, worker->srv->cfg); | |||||
ctx->resolver = dns_resolver_init (worker->srv->logger, ctx->ev_base, worker->srv->cfg); | |||||
event_base_loop (ctx->ev_base, 0); | event_base_loop (ctx->ev_base, 0); | ||||
struct rspamd_dns_resolver * | struct rspamd_dns_resolver * | ||||
dns_resolver_init (struct event_base *ev_base, struct config_file *cfg) | |||||
dns_resolver_init (rspamd_logger_t *logger, struct event_base *ev_base, struct config_file *cfg) | |||||
{ | { | ||||
GList *cur; | GList *cur; | ||||
struct rspamd_dns_resolver *new; | struct rspamd_dns_resolver *new; | ||||
new->r = rdns_resolver_new (); | new->r = rdns_resolver_new (); | ||||
rdns_bind_libevent (new->r, new->ev_base); | rdns_bind_libevent (new->r, new->ev_base); | ||||
rdns_resolver_set_log_level (new->r, cfg->log_level); | rdns_resolver_set_log_level (new->r, cfg->log_level); | ||||
rdns_resolver_set_logger (new->r, (rdns_log_function)rspamd_common_logv, logger); | |||||
if (cfg->nameservers == NULL) { | if (cfg->nameservers == NULL) { | ||||
/* Parse resolv.conf */ | /* Parse resolv.conf */ |
#include "config.h" | #include "config.h" | ||||
#include "mem_pool.h" | #include "mem_pool.h" | ||||
#include "events.h" | #include "events.h" | ||||
#include "logger.h" | |||||
#include "rdns.h" | #include "rdns.h" | ||||
struct rspamd_dns_resolver; | struct rspamd_dns_resolver; | ||||
/** | /** | ||||
* Init DNS resolver, params are obtained from a config file or system file /etc/resolv.conf | * Init DNS resolver, params are obtained from a config file or system file /etc/resolv.conf | ||||
*/ | */ | ||||
struct rspamd_dns_resolver *dns_resolver_init (struct event_base *ev_base, struct config_file *cfg); | |||||
struct rspamd_dns_resolver *dns_resolver_init (rspamd_logger_t *logger, | |||||
struct event_base *ev_base, struct config_file *cfg); | |||||
/** | /** | ||||
* Make a DNS request | * Make a DNS request |
cfg = pcfg ? *(pcfg) : NULL; | cfg = pcfg ? *(pcfg) : NULL; | ||||
if (base != NULL && cfg != NULL) { | if (base != NULL && cfg != NULL) { | ||||
resolver = dns_resolver_init (base, cfg); | |||||
resolver = dns_resolver_init (rspamd_main->logger, base, cfg); | |||||
if (resolver) { | if (resolver) { | ||||
presolver = lua_newuserdata (L, sizeof (gpointer)); | presolver = lua_newuserdata (L, sizeof (gpointer)); | ||||
lua_setclass (L, "rspamd{resolver}", -1); | lua_setclass (L, "rspamd{resolver}", -1); |
event_base_set (ctx->ev_base, &worker->sig_ev_usr1); | event_base_set (ctx->ev_base, &worker->sig_ev_usr1); | ||||
signal_add (&worker->sig_ev_usr1, NULL); | signal_add (&worker->sig_ev_usr1, NULL); | ||||
ctx->resolver = dns_resolver_init (ctx->ev_base, worker->srv->cfg); | |||||
ctx->resolver = dns_resolver_init (worker->srv->logger, ctx->ev_base, worker->srv->cfg); | |||||
/* Open worker's lib */ | /* Open worker's lib */ | ||||
luaopen_lua_worker (L); | luaopen_lua_worker (L); |
Subproject commit cddc17d60ccf3516516e73f4e5cab151277fafbb | |||||
Subproject commit 5ca36d831ef871fbc7b76846b554a875c1ef5a87 |
signal_add (&worker->sig_ev_usr1, NULL); | signal_add (&worker->sig_ev_usr1, NULL); | ||||
/* DNS resolver */ | /* DNS resolver */ | ||||
ctx->resolver = dns_resolver_init (ctx->ev_base, worker->srv->cfg); | |||||
ctx->resolver = dns_resolver_init (worker->srv->logger, ctx->ev_base, worker->srv->cfg); | |||||
/* Set umask */ | /* Set umask */ | ||||
umask (S_IWGRP | S_IWOTH | S_IROTH | S_IRGRP); | umask (S_IWGRP | S_IWOTH | S_IROTH | S_IRGRP); |
rspamd_http_router_add_path (ctx->http, PATH_SCAN, rspamd_webui_handle_scan, ctx); | rspamd_http_router_add_path (ctx->http, PATH_SCAN, rspamd_webui_handle_scan, ctx); | ||||
#endif | #endif | ||||
ctx->resolver = dns_resolver_init (ctx->ev_base, worker->srv->cfg); | |||||
ctx->resolver = dns_resolver_init (worker->srv->logger, ctx->ev_base, worker->srv->cfg); | |||||
/* Maps events */ | /* Maps events */ | ||||
start_map_watch (worker->srv->cfg, ctx->ev_base); | start_map_watch (worker->srv->cfg, ctx->ev_base); |
start_map_watch (worker->srv->cfg, ctx->ev_base); | start_map_watch (worker->srv->cfg, ctx->ev_base); | ||||
ctx->resolver = dns_resolver_init (ctx->ev_base, worker->srv->cfg); | |||||
ctx->resolver = dns_resolver_init (worker->srv->logger, ctx->ev_base, worker->srv->cfg); | |||||
/* Create classify pool */ | /* Create classify pool */ | ||||
ctx->classify_pool = NULL; | ctx->classify_pool = NULL; |