summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libserver/dns.c7
-rw-r--r--src/worker.c3
2 files changed, 10 insertions, 0 deletions
diff --git a/src/libserver/dns.c b/src/libserver/dns.c
index 84fb24d3c..6c32ae205 100644
--- a/src/libserver/dns.c
+++ b/src/libserver/dns.c
@@ -81,6 +81,12 @@ make_dns_request (struct rspamd_dns_resolver *resolver,
struct rdns_request *req;
struct rspamd_dns_request_ud *reqdata = NULL;
+ g_assert (resolver != NULL);
+
+ if (resolver->r == NULL) {
+ return FALSE;
+ }
+
if (pool != NULL) {
reqdata =
rspamd_mempool_alloc (pool, sizeof (struct rspamd_dns_request_ud));
@@ -155,6 +161,7 @@ dns_resolver_init (rspamd_logger_t *logger,
msg_err (
"cannot parse resolv.conf and no nameservers defined, so no ways to resolve addresses");
rdns_resolver_release (new->r);
+ new->r = NULL;
return new;
}
diff --git a/src/worker.c b/src/worker.c
index 3d9c7dabe..61a40d25b 100644
--- a/src/worker.c
+++ b/src/worker.c
@@ -147,6 +147,9 @@ rspamd_worker_finish_handler (struct rspamd_http_connection *conn,
rspamd_inet_address_to_string (task->client_addr));
rspamd_session_destroy (task->s);
}
+ else if (task->processed_stages & RSPAMD_TASK_STAGE_DONE) {
+ rspamd_session_pending (task->s);
+ }
return 0;
}