678. [bug] "tranfer-format one-answer;" could trigger an assertion

failure. [RT #646]
 also removed unused structure element state from axfr structure.
This commit is contained in:
Mark Andrews
2001-01-12 10:20:05 +00:00
parent 7dec36c225
commit f7321615ea
2 changed files with 10 additions and 3 deletions

View File

@@ -1,3 +1,5 @@
678. [bug] "tranfer-format one-answer;" could trigger an assertion
failure. [RT #646]
677. [bug] dnssec-signzone would occasionally use the wrong ttl
for database operations and fail. [RT #643]

View File

@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: xfrout.c,v 1.90 2001/01/09 21:40:09 bwelling Exp $ */
/* $Id: xfrout.c,v 1.91 2001/01/12 10:20:05 marka Exp $ */
#include <config.h>
@@ -99,6 +99,7 @@ struct db_rr_iterator {
isc_result_t result;
dns_db_t *db;
dns_dbiterator_t *dbit;
isc_boolean_t paused;
dns_dbversion_t *ver;
isc_stdtime_t now;
dns_dbnode_t *node;
@@ -138,6 +139,7 @@ db_rr_iterator_init(db_rr_iterator_t *it, dns_db_t *db, dns_dbversion_t *ver,
result = dns_db_createiterator(it->db, ISC_FALSE, &it->dbit);
if (result != ISC_R_SUCCESS)
return (result);
it->paused = ISC_FALSE;
it->rdatasetit = NULL;
dns_rdata_init(&it->rdata);
dns_rdataset_init(&it->rdataset);
@@ -194,6 +196,7 @@ db_rr_iterator_next(db_rr_iterator_t *it) {
while (it->result == ISC_R_NOMORE) {
dns_rdatasetiter_destroy(&it->rdatasetit);
dns_db_detachnode(it->db, &it->node);
it->paused = ISC_TRUE;
it->result = dns_dbiterator_next(it->dbit);
if (it->result == ISC_R_NOMORE) {
/* We are at the end of the entire database. */
@@ -225,7 +228,10 @@ db_rr_iterator_next(db_rr_iterator_t *it) {
static void
db_rr_iterator_pause(db_rr_iterator_t *it) {
dns_dbiterator_pause(it->dbit);
if (!it->paused) {
dns_dbiterator_pause(it->dbit);
it->paused = ISC_TRUE;
}
}
static void
@@ -436,7 +442,6 @@ static rrstream_methods_t ixfr_rrstream_methods = {
typedef struct axfr_rrstream {
rrstream_t common;
int state;
db_rr_iterator_t it;
isc_boolean_t it_valid;
} axfr_rrstream_t;