Browse Source

Use new dns API.

tags/1.0.0
Vsevolod Stakhov 9 years ago
parent
commit
93d8da4d85
7 changed files with 46 additions and 47 deletions
  1. 2
    5
      src/libserver/dkim.c
  2. 1
    2
      src/libserver/dkim.h
  3. 12
    26
      src/libserver/spf.c
  4. 16
    5
      src/lua/lua_http.c
  5. 13
    4
      src/lua/lua_tcp.c
  6. 1
    3
      src/plugins/dkim_check.c
  7. 1
    2
      src/plugins/surbl.c

+ 2
- 5
src/libserver/dkim.c View File

@@ -995,8 +995,7 @@ rspamd_dkim_dns_cb (struct rdns_reply *reply, gpointer arg)
*/
gboolean
rspamd_get_dkim_key (rspamd_dkim_context_t *ctx,
struct rspamd_dns_resolver *resolver,
struct rspamd_async_session *s,
struct rspamd_task *task,
dkim_key_handler_f handler,
gpointer ud)
{
@@ -1012,9 +1011,7 @@ rspamd_get_dkim_key (rspamd_dkim_context_t *ctx,
cbdata->handler = handler;
cbdata->ud = ud;

return make_dns_request (resolver,
s,
ctx->pool,
return make_dns_request_task (task,
rspamd_dkim_dns_cb,
cbdata,
RDNS_REQUEST_TXT,

+ 1
- 2
src/libserver/dkim.h View File

@@ -191,8 +191,7 @@ rspamd_dkim_context_t * rspamd_create_dkim_context (const gchar *sig,
* @return
*/
gboolean rspamd_get_dkim_key (rspamd_dkim_context_t *ctx,
struct rspamd_dns_resolver *resolver,
struct rspamd_async_session *s,
struct rspamd_task *task,
dkim_key_handler_f handler,
gpointer ud);


+ 12
- 26
src/libserver/spf.c View File

@@ -452,18 +452,15 @@ spf_record_dns_callback (struct rdns_reply *reply, gpointer arg)
/* Now resolve A record for this MX */
msg_debug ("resolve %s after resolving of MX",
elt_data->content.mx.name);
if (make_dns_request (task->resolver, task->s,
task->task_pool,
if (make_dns_request_task (task,
spf_record_dns_callback, (void *)cb, RDNS_REQUEST_A,
elt_data->content.mx.name)) {
task->dns_requests++;
cb->rec->requests_inflight++;
}
if (make_dns_request (task->resolver, task->s,
task->task_pool,
if (make_dns_request_task (task,
spf_record_dns_callback, (void *)cb, RDNS_REQUEST_AAAA,
elt_data->content.mx.name)) {
task->dns_requests++;
cb->rec->requests_inflight++;
}
}
@@ -481,20 +478,16 @@ spf_record_dns_callback (struct rdns_reply *reply, gpointer arg)
if (spf_check_ptr_host (cb, elt_data->content.ptr.name)) {
msg_debug ("resolve %s after resolving of PTR",
elt_data->content.ptr.name);
if (make_dns_request (task->resolver, task->s,
task->task_pool,
if (make_dns_request_task (task,
spf_record_dns_callback, (void *)cb,
RDNS_REQUEST_A,
elt_data->content.ptr.name)) {
task->dns_requests++;
cb->rec->requests_inflight++;
}
if (make_dns_request (task->resolver, task->s,
task->task_pool,
if (make_dns_request_task (task,
spf_record_dns_callback, (void *)cb,
RDNS_REQUEST_AAAA,
elt_data->content.ptr.name)) {
task->dns_requests++;
cb->rec->requests_inflight++;
}
}
@@ -759,9 +752,8 @@ parse_spf_a (struct spf_record *rec, struct spf_addr *addr)
cb->resolved = resolved;
msg_debug ("resolve a %s", host);

if (make_dns_request (task->resolver, task->s, task->task_pool,
if (make_dns_request_task (task,
spf_record_dns_callback, (void *)cb, RDNS_REQUEST_A, host)) {
task->dns_requests++;
rec->requests_inflight++;
return TRUE;
}
@@ -801,9 +793,8 @@ parse_spf_ptr (struct spf_record *rec, struct spf_addr *addr)

rspamd_mempool_add_destructor (task->task_pool, free, ptr);
msg_debug ("resolve ptr %s for %s", ptr, host);
if (make_dns_request (task->resolver, task->s, task->task_pool,
if (make_dns_request_task (task,
spf_record_dns_callback, (void *)cb, RDNS_REQUEST_PTR, ptr)) {
task->dns_requests++;
rec->requests_inflight++;

return TRUE;
@@ -838,9 +829,8 @@ parse_spf_mx (struct spf_record *rec, struct spf_addr *addr)
cb->resolved = resolved;

msg_debug ("resolve mx for %s", host);
if (make_dns_request (task->resolver, task->s, task->task_pool,
if (make_dns_request_task (task,
spf_record_dns_callback, (void *)cb, RDNS_REQUEST_MX, host)) {
task->dns_requests++;
rec->requests_inflight++;

return TRUE;
@@ -989,9 +979,8 @@ parse_spf_include (struct spf_record *rec, struct spf_addr *addr)
addr->flags |= RSPAMD_SPF_FLAG_REFRENCE;
msg_debug ("resolve include %s", domain);

if (make_dns_request (task->resolver, task->s, task->task_pool,
if (make_dns_request_task (task,
spf_record_dns_callback, (void *)cb, RDNS_REQUEST_TXT, domain)) {
task->dns_requests++;
rec->requests_inflight++;

return TRUE;
@@ -1053,9 +1042,8 @@ parse_spf_redirect (struct spf_record *rec,
cb->resolved = rspamd_spf_new_addr_list (rec, domain);
msg_debug ("resolve redirect %s", domain);

if (make_dns_request (task->resolver, task->s, task->task_pool,
if (make_dns_request_task (task,
spf_record_dns_callback, (void *)cb, RDNS_REQUEST_TXT, domain)) {
task->dns_requests++;
rec->requests_inflight++;

return TRUE;
@@ -1091,9 +1079,8 @@ parse_spf_exists (struct spf_record *rec, struct spf_addr *addr)
cb->resolved = resolved;

msg_debug ("resolve exists %s", host);
if (make_dns_request (task->resolver, task->s, task->task_pool,
if (make_dns_request_task (task,
spf_record_dns_callback, (void *)cb, RDNS_REQUEST_A, host)) {
task->dns_requests++;
rec->requests_inflight++;

return TRUE;
@@ -1694,10 +1681,9 @@ resolve_spf (struct rspamd_task *task, spf_cb_t callback)
return FALSE;
}

if (make_dns_request (task->resolver, task->s, task->task_pool,
if (make_dns_request_task (task,
spf_dns_callback,
(void *)rec, RDNS_REQUEST_TXT, rec->sender_domain)) {
task->dns_requests++;
rec->requests_inflight++;
return TRUE;
}

+ 16
- 5
src/lua/lua_http.c View File

@@ -458,12 +458,23 @@ lua_http_request (lua_State *L)
}
}
else {
if (!make_dns_request (resolver, session, NULL, lua_http_dns_handler, cbd,
RDNS_REQUEST_A, msg->host->str)) {
lua_http_maybe_free (cbd);
lua_pushboolean (L, FALSE);
if (task == NULL) {
if (!make_dns_request (resolver, session, NULL, lua_http_dns_handler, cbd,
RDNS_REQUEST_A, msg->host->str)) {
lua_http_maybe_free (cbd);
lua_pushboolean (L, FALSE);

return 1;
return 1;
}
}
else {
if (!make_dns_request_task (task, lua_http_dns_handler, cbd,
RDNS_REQUEST_A, msg->host->str)) {
lua_http_maybe_free (cbd);
lua_pushboolean (L, FALSE);

return 1;
}
}
}


+ 13
- 4
src/lua/lua_tcp.c View File

@@ -610,10 +610,19 @@ lua_tcp_request (lua_State *L)
}
}
else {
if (!make_dns_request (resolver, session, NULL, lua_tcp_dns_handler, cbd,
RDNS_REQUEST_A, host)) {
lua_tcp_push_error (cbd, "cannot resolve host");
lua_tcp_maybe_free (cbd);
if (task == NULL) {
if (!make_dns_request (resolver, session, NULL, lua_tcp_dns_handler, cbd,
RDNS_REQUEST_A, host)) {
lua_tcp_push_error (cbd, "cannot resolve host");
lua_tcp_maybe_free (cbd);
}
}
else {
if (!make_dns_request_task (task, lua_tcp_dns_handler, cbd,
RDNS_REQUEST_A, host)) {
lua_tcp_push_error (cbd, "cannot resolve host");
lua_tcp_maybe_free (cbd);
}
}
}


+ 1
- 3
src/plugins/dkim_check.c View File

@@ -502,10 +502,8 @@ dkim_symbol_callback (struct rspamd_task *task, void *unused)
}
else {
debug_task ("request key for %s from DNS", ctx->dns_key);
task->dns_requests++;
rspamd_get_dkim_key (ctx,
task->resolver,
task->s,
task,
dkim_module_key_handler,
cur);
}

+ 1
- 2
src/plugins/surbl.c View File

@@ -856,10 +856,9 @@ make_surbl_requests (struct rspamd_url *url, struct rspamd_task *task,
rspamd_mempool_strdup (task->task_pool, surbl_req);
debug_task ("send surbl dns request %s", surbl_req);

if (make_dns_request (task->resolver, task->s, task->task_pool,
if (make_dns_request_task (task,
dns_callback,
(void *)param, RDNS_REQUEST_A, surbl_req)) {
task->dns_requests++;
param->w = rspamd_session_get_watcher (task->s);
rspamd_session_watcher_push (task->s);
}

Loading…
Cancel
Save