]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
Allow to skip session in dns resolver.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 21 Aug 2014 14:47:51 +0000 (15:47 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 21 Aug 2014 14:47:51 +0000 (15:47 +0100)
src/libserver/dns.c

index 72903a6cfae15a1a62b218825edb6fb24c3e8ae4..dae19e849602b9957c6b6ccda636dce489ca3723 100644 (file)
@@ -64,7 +64,9 @@ rspamd_dns_callback (struct rdns_reply *reply, gpointer ud)
         * event removing
         */
        rdns_request_retain (reply->request);
-       remove_normal_event (reqdata->session, rspamd_dns_fin_cb, reqdata->req);
+       if (reqdata->session) {
+               remove_normal_event (reqdata->session, rspamd_dns_fin_cb, reqdata->req);
+       }
 }
 
 gboolean
@@ -89,15 +91,17 @@ make_dns_request (struct rspamd_dns_resolver *resolver,
                        resolver->request_timeout, resolver->max_retransmits, 1, name,
                        type);
 
-       if (req != NULL) {
-               register_async_event (session,
-                       (event_finalizer_t)rspamd_dns_fin_cb,
-                       req,
-                       g_quark_from_static_string ("dns resolver"));
-               reqdata->req = req;
-       }
-       else {
-               return FALSE;
+       if (session) {
+               if (req != NULL) {
+                       register_async_event (session,
+                                       (event_finalizer_t)rspamd_dns_fin_cb,
+                                       req,
+                                       g_quark_from_static_string ("dns resolver"));
+                       reqdata->req = req;
+               }
+               else {
+                       return FALSE;
+               }
        }
 
        return TRUE;