rspamd_http_router_set_unknown_handler (ctx->http,
rspamd_controller_handle_unknown);
- ctx->resolver = dns_resolver_init (worker->srv->logger,
+ ctx->resolver = rspamd_dns_resolver_init (worker->srv->logger,
ctx->ev_base,
worker->srv->cfg);
ctx->cfg = worker->srv->cfg;
double_to_tv (ctx->master_timeout, &ctx->master_io_tv);
- ctx->resolver = dns_resolver_init (worker->srv->logger,
+ ctx->resolver = rspamd_dns_resolver_init (worker->srv->logger,
ctx->ev_base,
worker->srv->cfg);
rspamd_upstreams_library_config (worker->srv->cfg, ctx->cfg->ups_ctx,
}
/* Maps events */
- ctx->resolver = dns_resolver_init (worker->srv->logger,
- ctx->ev_base,
- worker->srv->cfg);
+ ctx->resolver = rspamd_dns_resolver_init (worker->srv->logger,
+ ctx->ev_base,
+ worker->srv->cfg);
rspamd_map_watch (worker->srv->cfg, ctx->ev_base, ctx->resolver, worker, 0);
/* Get peer pipe */
cbdata->handler = handler;
cbdata->ud = ud;
- return make_dns_request_task_forced (task,
- rspamd_dkim_dns_cb,
- cbdata,
- RDNS_REQUEST_TXT,
- ctx->dns_key);
+ return rspamd_dns_resolver_request_task_forced (task,
+ rspamd_dkim_dns_cb,
+ cbdata,
+ RDNS_REQUEST_TXT,
+ ctx->dns_key);
}
static gboolean
}
struct rspamd_dns_request_ud *
-make_dns_request (struct rspamd_dns_resolver *resolver,
- struct rspamd_async_session *session,
- rspamd_mempool_t *pool,
- dns_callback_type cb,
- gpointer ud,
- enum rdns_request_type type,
- const char *name)
+rspamd_dns_resolver_request (struct rspamd_dns_resolver *resolver,
+ struct rspamd_async_session *session,
+ rspamd_mempool_t *pool,
+ dns_callback_type cb,
+ gpointer ud,
+ enum rdns_request_type type,
+ const char *name)
{
struct rdns_request *req;
struct rspamd_dns_request_ud *reqdata = NULL;
return FALSE;
}
- reqdata = make_dns_request (task->resolver, task->s, task->task_pool, cb, ud,
+ reqdata = rspamd_dns_resolver_request (task->resolver, task->s, task->task_pool, cb, ud,
type, name);
if (reqdata) {
}
gboolean
-make_dns_request_task (struct rspamd_task *task,
- dns_callback_type cb,
- gpointer ud,
- enum rdns_request_type type,
- const char *name)
+rspamd_dns_resolver_request_task (struct rspamd_task *task,
+ dns_callback_type cb,
+ gpointer ud,
+ enum rdns_request_type type,
+ const char *name)
{
return make_dns_request_task_common (task, cb, ud, type, name, FALSE);
}
gboolean
-make_dns_request_task_forced (struct rspamd_task *task,
- dns_callback_type cb,
- gpointer ud,
- enum rdns_request_type type,
- const char *name)
+rspamd_dns_resolver_request_task_forced (struct rspamd_task *task,
+ dns_callback_type cb,
+ gpointer ud,
+ enum rdns_request_type type,
+ const char *name)
{
return make_dns_request_task_common (task, cb, ud, type, name, TRUE);
}
}
struct rspamd_dns_resolver *
-dns_resolver_init (rspamd_logger_t *logger,
- struct event_base *ev_base,
- struct rspamd_config *cfg)
+rspamd_dns_resolver_init (rspamd_logger_t *logger,
+ struct event_base *ev_base,
+ struct rspamd_config *cfg)
{
struct rspamd_dns_resolver *dns_resolver;
/**
* Init DNS resolver, params are obtained from a config file or system file /etc/resolv.conf
*/
-struct rspamd_dns_resolver * dns_resolver_init (rspamd_logger_t *logger,
- struct event_base *ev_base, struct rspamd_config *cfg);
+struct rspamd_dns_resolver * rspamd_dns_resolver_init (rspamd_logger_t *logger,
+ struct event_base *ev_base, struct rspamd_config *cfg);
struct rspamd_dns_request_ud;
/**
* @param ... string or ip address based on a request type
* @return TRUE if request was sent.
*/
-struct rspamd_dns_request_ud * make_dns_request (struct rspamd_dns_resolver *resolver,
- struct rspamd_async_session *session,
- rspamd_mempool_t *pool,
- dns_callback_type cb,
- gpointer ud,
- enum rdns_request_type type,
- const char *name);
+struct rspamd_dns_request_ud * rspamd_dns_resolver_request (struct rspamd_dns_resolver *resolver,
+ struct rspamd_async_session *session,
+ rspamd_mempool_t *pool,
+ dns_callback_type cb,
+ gpointer ud,
+ enum rdns_request_type type,
+ const char *name);
-gboolean make_dns_request_task (struct rspamd_task *task,
- dns_callback_type cb,
- gpointer ud,
- enum rdns_request_type type,
- const char *name);
+gboolean rspamd_dns_resolver_request_task (struct rspamd_task *task,
+ dns_callback_type cb,
+ gpointer ud,
+ enum rdns_request_type type,
+ const char *name);
-gboolean make_dns_request_task_forced (struct rspamd_task *task,
- dns_callback_type cb,
- gpointer ud,
- enum rdns_request_type type,
- const char *name);
+gboolean rspamd_dns_resolver_request_task_forced (struct rspamd_task *task,
+ dns_callback_type cb,
+ gpointer ud,
+ enum rdns_request_type type,
+ const char *name);
#endif
/* Now resolve A record for this MX */
msg_debug_spf ("resolve %s after resolving of MX",
elt_data->content.mx.name);
- if (make_dns_request_task_forced (task,
+ if (rspamd_dns_resolver_request_task_forced (task,
spf_record_dns_callback, (void *) cb,
RDNS_REQUEST_A,
elt_data->content.mx.name)) {
cb->rec->requests_inflight++;
}
- if (make_dns_request_task_forced (task,
+ if (rspamd_dns_resolver_request_task_forced (task,
spf_record_dns_callback, (void *) cb,
RDNS_REQUEST_AAAA,
elt_data->content.mx.name)) {
elt_data->content.ptr.name)) {
msg_debug_spf ("resolve %s after resolving of PTR",
elt_data->content.ptr.name);
- if (make_dns_request_task_forced (task,
+ if (rspamd_dns_resolver_request_task_forced (task,
spf_record_dns_callback, (void *) cb,
RDNS_REQUEST_A,
elt_data->content.ptr.name)) {
cb->rec->requests_inflight++;
}
- if (make_dns_request_task_forced (task,
+ if (rspamd_dns_resolver_request_task_forced (task,
spf_record_dns_callback, (void *) cb,
RDNS_REQUEST_AAAA,
elt_data->content.ptr.name)) {
cb->resolved = resolved;
msg_debug_spf ("resolve a %s", host);
- if (make_dns_request_task_forced (task,
+ if (rspamd_dns_resolver_request_task_forced (task,
spf_record_dns_callback, (void *) cb, RDNS_REQUEST_A, host)) {
rec->requests_inflight++;
cb->resolved = resolved;
msg_debug_spf ("resolve aaa %s", host);
- if (make_dns_request_task_forced (task,
+ if (rspamd_dns_resolver_request_task_forced (task,
spf_record_dns_callback, (void *) cb, RDNS_REQUEST_AAAA, host)) {
rec->requests_inflight++;
}
rec->ttl = 0;
msg_debug_spf ("disable SPF caching as there is PTR expansion");
- if (make_dns_request_task_forced (task,
+ if (rspamd_dns_resolver_request_task_forced (task,
spf_record_dns_callback, (void *) cb, RDNS_REQUEST_PTR, ptr)) {
rec->requests_inflight++;
cb->resolved = resolved;
msg_debug_spf ("resolve mx for %s", host);
- if (make_dns_request_task_forced (task,
+ if (rspamd_dns_resolver_request_task_forced (task,
spf_record_dns_callback, (void *) cb, RDNS_REQUEST_MX, host)) {
rec->requests_inflight++;
addr->flags |= RSPAMD_SPF_FLAG_REFERENCE;
msg_debug_spf ("resolve include %s", domain);
- if (make_dns_request_task_forced (task,
+ if (rspamd_dns_resolver_request_task_forced (task,
spf_record_dns_callback, (void *) cb, RDNS_REQUEST_TXT, domain)) {
rec->requests_inflight++;
cb->ptr_host = domain;
msg_debug_spf ("resolve redirect %s", domain);
- if (make_dns_request_task_forced (task,
+ if (rspamd_dns_resolver_request_task_forced (task,
spf_record_dns_callback, (void *) cb, RDNS_REQUEST_TXT, domain)) {
rec->requests_inflight++;
cb->ptr_host = host;
msg_debug_spf ("resolve exists %s", host);
- if (make_dns_request_task_forced (task,
+ if (rspamd_dns_resolver_request_task_forced (task,
spf_record_dns_callback, (void *) cb, RDNS_REQUEST_A, host)) {
rec->requests_inflight++;
rec->local_part = cred->local_part;
rec->sender_domain = cred->domain;
- if (make_dns_request_task_forced (task,
+ if (rspamd_dns_resolver_request_task_forced (task,
spf_dns_callback,
(void *) rec, RDNS_REQUEST_TXT, rec->sender_domain)) {
rec->requests_inflight++;
ctx->cfg = worker->srv->cfg;
ctx->scripts = worker->cf->scripts;
ctx->L = ctx->cfg->lua_state;
- ctx->resolver = dns_resolver_init (worker->srv->logger,
- ctx->ev_base,
- worker->srv->cfg);
+ ctx->resolver = rspamd_dns_resolver_init (worker->srv->logger,
+ ctx->ev_base,
+ worker->srv->cfg);
rspamd_upstreams_library_config (worker->srv->cfg, ctx->cfg->ups_ctx,
ctx->ev_base, ctx->resolver->r);
struct event_base *ev_base = lua_check_ev_base (L, 3);
if (ev_base) {
- cfg->dns_resolver = dns_resolver_init (rspamd_logger_get_singleton(),
+ cfg->dns_resolver = rspamd_dns_resolver_init (rspamd_logger_get_singleton (),
ev_base,
cfg);
}
if (task == NULL) {
- ret = (make_dns_request (cfg->dns_resolver,
- session,
- pool,
- lua_dns_callback,
- cbdata,
- type,
- to_resolve) != NULL);
+ ret = (rspamd_dns_resolver_request (cfg->dns_resolver,
+ session,
+ pool,
+ lua_dns_callback,
+ cbdata,
+ type,
+ to_resolve) != NULL);
}
else {
if (forced) {
- ret = make_dns_request_task_forced (task,
+ ret = rspamd_dns_resolver_request_task_forced (task,
lua_dns_callback,
cbdata,
type,
to_resolve);
}
else {
- ret = make_dns_request_task (task,
+ ret = rspamd_dns_resolver_request_task (task,
lua_dns_callback,
cbdata,
type,
cfg = pcfg ? *(pcfg) : NULL;
if (base != NULL && cfg != NULL) {
- resolver = dns_resolver_init (NULL, base, cfg);
+ resolver = rspamd_dns_resolver_init (NULL, base, cfg);
if (resolver) {
presolver = lua_newuserdata (L, sizeof (gpointer));
rspamd_lua_setclass (L, "rspamd{resolver}", -1);
cbdata->pool = pool;
if (task == NULL) {
- if (make_dns_request (resolver,
+ if (rspamd_dns_resolver_request (resolver,
session,
pool,
lua_dns_resolver_callback,
}
if (forced) {
- ret = make_dns_request_task_forced (task,
+ ret = rspamd_dns_resolver_request_task_forced (task,
lua_dns_resolver_callback,
cbdata,
type,
to_resolve);
} else {
- ret = make_dns_request_task (task,
+ ret = rspamd_dns_resolver_request_task (task,
lua_dns_resolver_callback,
cbdata,
type,
static struct rspamd_dns_resolver *global_resolver;
if (global_resolver == NULL) {
- global_resolver = dns_resolver_init (NULL, ev_base, NULL);
+ global_resolver = rspamd_dns_resolver_init (NULL, ev_base, NULL);
}
return global_resolver;
if (task == NULL) {
REF_RETAIN (cbd);
- if (!make_dns_request (resolver, session, NULL, lua_http_dns_handler, cbd,
+ if (!rspamd_dns_resolver_request (resolver, session, NULL, lua_http_dns_handler, cbd,
RDNS_REQUEST_A,
cbd->host)) {
if (cbd->ref.refcount > 1) {
else {
REF_RETAIN (cbd);
- if (!make_dns_request_task_forced (task, lua_http_dns_handler, cbd,
+ if (!rspamd_dns_resolver_request_task_forced (task, lua_http_dns_handler, cbd,
RDNS_REQUEST_A, cbd->host)) {
if (cbd->ref.refcount > 1) {
/* Not released by make_connection */
}
if (task != NULL) {
- /* Deprecation: already done in make_dns_request */
+ /* Deprecation: already done in rspamd_dns_resolver_request */
}
else {
return luaL_error (L, "invalid arguments");
}
if (global_resolver == NULL) {
- global_resolver = dns_resolver_init (NULL, ev_base, cfg);
+ global_resolver = rspamd_dns_resolver_init (NULL, ev_base, cfg);
}
return global_resolver;
}
else {
if (task == NULL) {
- if (!make_dns_request (resolver, session, NULL, lua_tcp_dns_handler, cbd,
+ if (!rspamd_dns_resolver_request (resolver, session, NULL, lua_tcp_dns_handler, cbd,
RDNS_REQUEST_A, host)) {
lua_tcp_push_error (cbd, TRUE, "cannot resolve host: %s", host);
lua_pushboolean (L, FALSE);
}
}
else {
- if (!make_dns_request_task (task, lua_tcp_dns_handler, cbd,
+ if (!rspamd_dns_resolver_request_task (task, lua_tcp_dns_handler, cbd,
RDNS_REQUEST_A, host)) {
lua_tcp_push_error (cbd, TRUE, "cannot resolve host: %s", host);
lua_pushboolean (L, FALSE);
}
else {
if (task == NULL) {
- if (!make_dns_request (resolver, session, NULL, lua_tcp_dns_handler, cbd,
- RDNS_REQUEST_A, host)) {
+ if (!rspamd_dns_resolver_request (resolver, session, NULL, lua_tcp_dns_handler, cbd,
+ RDNS_REQUEST_A, host)) {
lua_pushboolean (L, FALSE);
lua_pushliteral (L, "Failed to initiate dns request");
else {
cbd->item = rspamd_symcache_get_cur_item (task);
- if (!make_dns_request_task (task, lua_tcp_dns_handler, cbd,
- RDNS_REQUEST_A, host)) {
+ if (!rspamd_dns_resolver_request_task (task, lua_tcp_dns_handler, cbd,
+ RDNS_REQUEST_A, host)) {
lua_pushboolean (L, FALSE);
lua_pushliteral (L, "Failed to initiate dns request");
TCP_RELEASE (cbd);
task->msg.len = mlen;
task->fin_callback = lua_util_task_fin;
task->fin_arg = &res;
- task->resolver = dns_resolver_init (NULL, base, cfg);
+ task->resolver = rspamd_dns_resolver_init (NULL, base, cfg);
task->s = rspamd_session_create (task->task_pool, rspamd_task_fin,
rspamd_task_restore, (event_finalizer_t)rspamd_task_free, task);
ctx->L = L;
ctx->cfg = worker->srv->cfg;
- ctx->resolver = dns_resolver_init (worker->srv->logger,
+ ctx->resolver = rspamd_dns_resolver_init (worker->srv->logger,
ctx->ev_base,
worker->srv->cfg);
msg_debug_surbl ("send surbl dns ip request %s to %s", surbl_req,
suffix->suffix);
- if (make_dns_request_task (task,
+ if (rspamd_dns_resolver_request_task (task,
surbl_dns_ip_callback,
(void *) param, RDNS_REQUEST_A, surbl_req)) {
param->item = item;
rspamd_mempool_strdup (task->task_pool, url->surbl);
msg_debug_surbl ("send surbl dns request %s", surbl_req);
- if (make_dns_request_task (task,
+ if (rspamd_dns_resolver_request_task (task,
surbl_dns_callback,
(void *) param, RDNS_REQUEST_A, surbl_req)) {
param->item = item;
param->host_resolve,
to_resolve);
- if (make_dns_request_task (task,
+ if (rspamd_dns_resolver_request_task (task,
surbl_dns_callback,
param, RDNS_REQUEST_A, to_resolve->str)) {
rspamd_symcache_item_async_inc (param->task, param->item, M);
ctx->ev_base = rspamd_prepare_worker (worker, "rspamd_proxy",
proxy_accept_socket);
- ctx->resolver = dns_resolver_init (worker->srv->logger,
+ ctx->resolver = rspamd_dns_resolver_init (worker->srv->logger,
ctx->ev_base,
worker->srv->cfg);
double_to_tv (ctx->timeout, &ctx->io_tv);
}
}
- ctx->resolver = dns_resolver_init (worker->srv->logger,
+ ctx->resolver = rspamd_dns_resolver_init (worker->srv->logger,
ctx->ev_base,
worker->srv->cfg);
rspamd_map_watch (worker->srv->cfg, ctx->ev_base, ctx->resolver, worker, 0);
s = rspamd_session_create (pool, session_fin, NULL, NULL, NULL);
- resolver = dns_resolver_init (NULL, base, cfg);
+ resolver = rspamd_dns_resolver_init (NULL, base, cfg);
requests ++;
- g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_A, "google.com"));
+ g_assert (rspamd_dns_resolver_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_A, "google.com"));
requests ++;
- g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_PTR, "81.19.70.3"));
+ g_assert (rspamd_dns_resolver_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_PTR, "81.19.70.3"));
requests ++;
- g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_MX, "rambler.ru"));
+ g_assert (rspamd_dns_resolver_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_MX, "rambler.ru"));
requests ++;
- g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_TXT, "rambler.ru"));
+ g_assert (rspamd_dns_resolver_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_TXT, "rambler.ru"));
requests ++;
- g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_TXT, "google.com"));
+ g_assert (rspamd_dns_resolver_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_TXT, "google.com"));
requests ++;
- g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_SPF, "rambler.ru"));
+ g_assert (rspamd_dns_resolver_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_SPF, "rambler.ru"));
requests ++;
- g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_SRV, "_xmpp-server._tcp.jabber.org"));
+ g_assert (rspamd_dns_resolver_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_SRV,
+ "_xmpp-server._tcp.jabber.org"));
requests ++;
- g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_TXT, "non-existent.arpa"));
+ g_assert (rspamd_dns_resolver_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_TXT, "non-existent.arpa"));
g_assert (resolver != NULL);
cfg->upstream_revive_time = 0.5;
cfg->upstream_error_time = 2;
- resolver = dns_resolver_init (NULL, ev_base, cfg);
+ resolver = rspamd_dns_resolver_init (NULL, ev_base, cfg);
rspamd_upstreams_library_config (cfg, cfg->ups_ctx, ev_base, resolver->r);
/*