summaryrefslogtreecommitdiffstats
path: root/contrib/bind9/lib/dns/xfrin.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bind9/lib/dns/xfrin.c')
-rw-r--r--contrib/bind9/lib/dns/xfrin.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/contrib/bind9/lib/dns/xfrin.c b/contrib/bind9/lib/dns/xfrin.c
index bec8501..dd7801d 100644
--- a/contrib/bind9/lib/dns/xfrin.c
+++ b/contrib/bind9/lib/dns/xfrin.c
@@ -1,8 +1,8 @@
/*
- * Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 1999-2003 Internet Software Consortium.
*
- * Permission to use, copy, modify, and distribute this software for any
+ * Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: xfrin.c,v 1.135.18.11 2006/07/19 00:58:01 marka Exp $ */
+/* $Id: xfrin.c,v 1.135.18.16 2007/10/31 01:59:47 marka Exp $ */
/*! \file */
@@ -722,6 +722,11 @@ xfrin_fail(dns_xfrin_ctx_t *xfr, isc_result_t result, const char *msg) {
result = DNS_R_BADIXFR;
}
xfrin_cancelio(xfr);
+ /*
+ * Close the journal.
+ */
+ if (xfr->ixfr.journal != NULL)
+ dns_journal_destroy(&xfr->ixfr.journal);
if (xfr->done != NULL) {
(xfr->done)(xfr->zone, result);
xfr->done = NULL;
@@ -1043,6 +1048,7 @@ xfrin_send_request(dns_xfrin_ctx_t *xfr) {
xfr->checkid = ISC_TRUE;
xfr->id++;
+ xfr->nmsg = 0;
msg->id = xfr->id;
CHECK(render(msg, xfr->mctx, &xfr->qbuffer));
@@ -1304,6 +1310,11 @@ xfrin_recv_done(isc_task_t *task, isc_event_t *ev) {
CHECK(xfrin_send_request(xfr));
} else if (xfr->state == XFRST_END) {
/*
+ * Close the journal.
+ */
+ if (xfr->ixfr.journal != NULL)
+ dns_journal_destroy(&xfr->ixfr.journal);
+ /*
* Inform the caller we succeeded.
*/
if (xfr->done != NULL) {
OpenPOWER on IntegriCloud