diff --git a/bin/named/omapiconf.c b/bin/named/omapiconf.c index 878f885fa7..15929e8c3d 100644 --- a/bin/named/omapiconf.c +++ b/bin/named/omapiconf.c @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: omapiconf.c,v 1.12 2000/09/15 03:22:45 tale Exp $ */ +/* $Id: omapiconf.c,v 1.13 2000/10/20 13:29:28 marka Exp $ */ /* * Principal Author: DCL @@ -359,6 +359,7 @@ add_listener(isc_mem_t *mctx, ns_omapilistener_t **listenerp, listener->mctx = mctx; listener->manager = NULL; listener->address = control->u.inet_v.addr; + ISC_LINK_INIT(listener, link); /* * Make the acl. diff --git a/bin/named/update.c b/bin/named/update.c index ab059b8ce5..82bc4fff79 100644 --- a/bin/named/update.c +++ b/bin/named/update.c @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: update.c,v 1.67 2000/10/19 23:41:40 gson Exp $ */ +/* $Id: update.c,v 1.68 2000/10/20 13:29:29 marka Exp $ */ #include @@ -186,6 +186,7 @@ do_one_tuple(dns_difftuple_t **tuple, * Apply it to the database. */ result = dns_diff_apply(&temp_diff, db, ver); + ISC_LIST_UNLINK(temp_diff.tuples, *tuple, link); if (result != ISC_R_SUCCESS) { dns_difftuple_free(tuple); return (result); diff --git a/bin/named/xfrout.c b/bin/named/xfrout.c index 33a1252d2c..9429d95624 100644 --- a/bin/named/xfrout.c +++ b/bin/named/xfrout.c @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: xfrout.c,v 1.77 2000/10/20 02:21:40 marka Exp $ */ +/* $Id: xfrout.c,v 1.78 2000/10/20 13:29:30 marka Exp $ */ #include @@ -255,6 +255,7 @@ log_rr(dns_name_t *name, dns_rdata_t *rdata, isc_uint32_t ttl) { char mem[2000]; dns_rdatalist_t rdl; dns_rdataset_t rds; + dns_rdata_t rd; rdl.type = rdata->type; rdl.rdclass = rdata->rdclass; @@ -262,7 +263,9 @@ log_rr(dns_name_t *name, dns_rdata_t *rdata, isc_uint32_t ttl) { ISC_LIST_INIT(rdl.rdata); ISC_LINK_INIT(&rdl, link); dns_rdataset_init(&rds); - ISC_LIST_APPEND(rdl.rdata, rdata, link); + dns_rdata_init(&rd); + dns_rdata_clone(rdata, &rd); + ISC_LIST_APPEND(rdl.rdata, &rd, link); RUNTIME_CHECK(dns_rdatalist_tordataset(&rdl, &rds) == ISC_R_SUCCESS); isc_buffer_init(&buf, mem, sizeof(mem)); @@ -1294,7 +1297,6 @@ sendstream(xfrout_ctx_t *xfr) { unsigned int size; isc_region_t r; - dns_rdata_init(&rdata); xfr->stream->methods->current(xfr->stream, &name, &ttl, &rdata); size = name->length + 10 + rdata->length; diff --git a/lib/dns/config/confctl.c b/lib/dns/config/confctl.c index bdb8499452..0ed2722246 100644 --- a/lib/dns/config/confctl.c +++ b/lib/dns/config/confctl.c @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: confctl.c,v 1.29 2000/08/01 01:23:17 tale Exp $ */ +/* $Id: confctl.c,v 1.30 2000/10/20 13:29:34 marka Exp $ */ #include @@ -178,6 +178,7 @@ dns_c_ctrlinet_new(isc_mem_t *mem, dns_c_ctrl_t **control, isc_sockaddr_setport(&addr, port); ctrl->u.inet_v.addr = addr; ctrl->keyidlist = keylist; + ISC_LINK_INIT(ctrl, next); if (copy) { res = dns_c_ipmatchlist_copy(mem, diff --git a/lib/dns/journal.c b/lib/dns/journal.c index 185c2bf7d2..46ba3743fe 100644 --- a/lib/dns/journal.c +++ b/lib/dns/journal.c @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: journal.c,v 1.59 2000/10/20 02:21:44 marka Exp $ */ +/* $Id: journal.c,v 1.60 2000/10/20 13:29:32 marka Exp $ */ #include @@ -547,13 +547,13 @@ dns_diff_sort(dns_diff_t *diff, dns_diff_compare_func *compare) { /* * Create an rdataset containing the single RR of the given - * tuple. The caller must allocate both the rdataset and + * tuple. The caller must allocate the the rdata, rdataset and * an rdatalist structure for it to refer to. */ static isc_result_t -diff_tuple_tordataset(dns_difftuple_t *t, dns_rdatalist_t *rdl, - dns_rdataset_t *rds) +diff_tuple_tordataset(dns_difftuple_t *t, dns_rdata_t *rdata, + dns_rdatalist_t *rdl, dns_rdataset_t *rds) { REQUIRE(DNS_DIFFTUPLE_VALID(t)); REQUIRE(rdl != NULL); @@ -565,7 +565,9 @@ diff_tuple_tordataset(dns_difftuple_t *t, dns_rdatalist_t *rdl, ISC_LIST_INIT(rdl->rdata); ISC_LINK_INIT(rdl, link); dns_rdataset_init(rds); - ISC_LIST_APPEND(rdl->rdata, &t->rdata, link); + ISC_LINK_INIT(rdata, link); + dns_rdata_clone(&t->rdata, rdata); + ISC_LIST_APPEND(rdl->rdata, rdata, link); return (dns_rdatalist_tordataset(rdl, rds)); } @@ -590,8 +592,9 @@ dns_diff_print(dns_diff_t *diff, FILE *file) { dns_rdatalist_t rdl; dns_rdataset_t rds; + dns_rdata_t rd; - result = diff_tuple_tordataset(t, &rdl, &rds); + result = diff_tuple_tordataset(t, &rd, &rdl, &rds); if (result != ISC_R_SUCCESS) { UNEXPECTED_ERROR(__FILE__, __LINE__, "diff_tuple_tordataset failed: %s", diff --git a/lib/dns/zone.c b/lib/dns/zone.c index fad44e96eb..f842fc0965 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: zone.c,v 1.237 2000/10/17 20:57:24 mws Exp $ */ +/* $Id: zone.c,v 1.238 2000/10/20 13:29:33 marka Exp $ */ #include @@ -4809,7 +4809,6 @@ forward_callback(isc_task_t *task, isc_event_t *event) { (forward->callback)(forward->callback_arg, result, NULL); forward_destroy(forward); } - isc_event_free(&event); } isc_result_t diff --git a/lib/omapi/connection.c b/lib/omapi/connection.c index 10f48ebdcf..1cab8cc04c 100644 --- a/lib/omapi/connection.c +++ b/lib/omapi/connection.c @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: connection.c,v 1.34 2000/08/26 01:42:32 bwelling Exp $ */ +/* $Id: connection.c,v 1.35 2000/10/20 13:29:36 marka Exp $ */ /* Principal Author: DCL */ @@ -340,10 +340,10 @@ recv_done(isc_task_t *task, isc_event_t *event) { /* * Restore the input buffers to the connection object. */ - for (buffer = ISC_LIST_HEAD(bufferlist); - buffer != NULL; - buffer = ISC_LIST_NEXT(buffer, link)) + while ((buffer = ISC_LIST_HEAD(bufferlist)) != NULL) { + ISC_LIST_UNLINK(bufferlist, buffer, link); ISC_LIST_APPEND(connection->input_buffers, buffer, link); + } if (result == ISC_R_SUCCESS) { connection->in_bytes += bytes_read; @@ -438,6 +438,7 @@ send_done(isc_task_t *task, isc_event_t *event) { * end_connection can free the buffer, if it is called below. */ buffer = ISC_LIST_HEAD(bufferlist); + ISC_LIST_UNLINK(bufferlist, buffer, link); ISC_LIST_APPEND(connection->output_buffers, buffer, link); isc_buffer_clear(buffer); diff --git a/lib/omapi/listener.c b/lib/omapi/listener.c index 57cefd93f9..daf6fd7d2c 100644 --- a/lib/omapi/listener.c +++ b/lib/omapi/listener.c @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: listener.c,v 1.30 2000/08/26 01:42:34 bwelling Exp $ */ +/* $Id: listener.c,v 1.31 2000/10/20 13:29:37 marka Exp $ */ /* * Subroutines that support the generic listener object. @@ -200,6 +200,7 @@ listener_accept(isc_task_t *task, isc_event_t *event) { ISC_LIST_APPEND(connection->input_buffers, ibuffer, link); ISC_LIST_INIT(connection->output_buffers); ISC_LIST_APPEND(connection->output_buffers, obuffer, link); + ISC_LINK_INIT(connection, link); /* * Create a new protocol object to oversee the handling of this