]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
3281. [bug] SOA refresh queries could be treated as cancelled
authorMark Andrews <marka@isc.org>
Tue, 7 Feb 2012 19:51:32 +0000 (19:51 +0000)
committerMark Andrews <marka@isc.org>
Tue, 7 Feb 2012 19:51:32 +0000 (19:51 +0000)
                        despite succeeding over the loopback interface.
                        [RT #27782]

CHANGES
lib/dns/request.c

diff --git a/CHANGES b/CHANGES
index 0f3049c337548a775ec5d997e5f5bb45a27f1448..38ccc2cfd2bb8525f3b285e1a4c88f415a637035 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,7 @@
+3281.  [bug]           SOA refresh queries could be treated as cancelled
+                       despite succeeding over the loopback interface.
+                       [RT #27782]
+
 3280.  [bug]           Potential double free of a rdataset on out of memory
                        with DNS64. [RT #27762]
 
index 25e67945b1de6c8f5187de80346621371a021f5d..c9b24ded17c1aa3281a22e0c7ceff400e70d528e 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: request.c,v 1.89 2011/03/12 04:59:48 tbox Exp $ */
+/* $Id: request.c,v 1.89.250.1 2012/02/07 19:51:32 marka Exp $ */
 
 /*! \file */
 
@@ -1133,9 +1133,7 @@ req_render(dns_message_t *message, isc_buffer_t **bufferp,
  */
 static void
 send_if_done(dns_request_t *request, isc_result_t result) {
-       if (!DNS_REQUEST_CONNECTING(request) &&
-           !DNS_REQUEST_SENDING(request) &&
-           !request->canceling)
+       if (request->event != NULL && !request->canceling)
                req_sendevent(request, result);
 }
 
@@ -1319,8 +1317,8 @@ req_senddone(isc_task_t *task, isc_event_t *event) {
                else
                        send_if_done(request, ISC_R_CANCELED);
        } else if (sevent->result != ISC_R_SUCCESS) {
-                       req_cancel(request);
-                       send_if_done(request, ISC_R_CANCELED);
+               req_cancel(request);
+               send_if_done(request, ISC_R_CANCELED);
        }
        UNLOCK(&request->requestmgr->locks[request->hash]);