]> source.dussan.org Git - rspamd.git/commitdiff
Fix DNSless run.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 9 Jun 2015 13:49:05 +0000 (14:49 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 9 Jun 2015 13:49:05 +0000 (14:49 +0100)
src/libserver/dns.c
src/worker.c

index 84fb24d3c95ed8fcb6b4be3b29ffe06abeba2c04..6c32ae205dab8d9cc9fedb472c9e70ddd0f772ac 100644 (file)
@@ -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;
                }
index 3d9c7dabeeb0310481ac206348115c62a511b4c0..61a40d25bab6ff0d3c71a3e6b12f966318b7d078 100644 (file)
@@ -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;
 }