/* 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++;
}
}
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++;
}
}
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;
}
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;
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;
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;
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;
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;
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;
}
}
}
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;
+ }
}
}
}
}
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);
+ }
}
}