]> 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:53:53 +0000 (19:53 +0000)
committerMark Andrews <marka@isc.org>
Tue, 7 Feb 2012 19:53:53 +0000 (19:53 +0000)
                        despite succeeding over the loopback interface.
                        [RT #27782]

CHANGES
lib/dns/request.c

diff --git a/CHANGES b/CHANGES
index d52c1a61c9961fc8802069aac141f3b3e3113e80..d6f418eeacd85bd0d7ae082798298403d8dca852 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]
+
 3277.  [bug]           Make sure automatic key maintenance is started
                        when "auto-dnssec maintain" is turned on during
                        "rndc reconfig". [RT #26805]
index 17804f1936292ee4ae3894cdd29b3d88e25cfe29..15538a7a1a345ed65c2008852b20deeed3911c9e 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: request.c,v 1.85.104.2 2011/03/12 04:58:28 tbox Exp $ */
+/* $Id: request.c,v 1.85.104.3 2012/02/07 19:53:53 marka Exp $ */
 
 /*! \file */
 
@@ -1130,9 +1130,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);
 }
 
@@ -1316,8 +1314,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]);