diff options
-rw-r--r-- | src/libserver/dns.c | 7 | ||||
-rw-r--r-- | src/worker.c | 3 |
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; } |