diff --git a/lib/dns/xfrin.c b/lib/dns/xfrin.c index d82bda28bc..75f98e6856 100644 --- a/lib/dns/xfrin.c +++ b/lib/dns/xfrin.c @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: xfrin.c,v 1.127 2001/09/12 20:39:36 bwelling Exp $ */ +/* $Id: xfrin.c,v 1.128 2001/09/27 01:01:46 gson Exp $ */ #include @@ -73,8 +73,6 @@ * when the first two (2) response RRs have already been received. */ typedef enum { - XFRST_SOAQUERY, - XFRST_GOTSOA, XFRST_INITIALSOA, XFRST_FIRSTDATA, XFRST_IXFR_DELSOA, @@ -418,31 +416,6 @@ xfr_rr(dns_xfrin_ctx_t *xfr, dns_name_t *name, isc_uint32_t ttl, redo: switch (xfr->state) { - case XFRST_SOAQUERY: - if (rdata->type != dns_rdatatype_soa) { - xfrin_log(xfr, ISC_LOG_ERROR, - "non-SOA response to SOA query"); - FAIL(DNS_R_FORMERR); - } - xfr->end_serial = dns_soa_getserial(rdata); - if (!DNS_SERIAL_GT(xfr->end_serial, - xfr->ixfr.request_serial) && - !dns_zone_isforced(xfr->zone)) { - xfrin_log(xfr, ISC_LOG_DEBUG(3), - "requested serial %u, " - "master has %u, not updating", - xfr->ixfr.request_serial, xfr->end_serial); - FAIL(DNS_R_UPTODATE); - } - xfr->state = XFRST_GOTSOA; - break; - - case XFRST_GOTSOA: - /* - * Skip other records in the answer section. - */ - break; - case XFRST_INITIALSOA: if (rdata->type != dns_rdatatype_soa) { xfrin_log(xfr, ISC_LOG_ERROR, @@ -1130,8 +1103,8 @@ xfrin_recv_done(isc_task_t *task, isc_event_t *ev) { try_axfr: dns_message_destroy(&msg); xfrin_reset(xfr); - xfr->reqtype = dns_rdatatype_soa; - xfr->state = XFRST_SOAQUERY; + xfr->reqtype = dns_rdatatype_axfr; + xfr->state = XFRST_INITIALSOA; xfrin_start(xfr); return; } @@ -1233,11 +1206,7 @@ xfrin_recv_done(isc_task_t *task, isc_event_t *ev) { dns_message_destroy(&msg); - if (xfr->state == XFRST_GOTSOA) { - xfr->reqtype = dns_rdatatype_axfr; - xfr->state = XFRST_INITIALSOA; - CHECK(xfrin_send_request(xfr)); - } else if (xfr->state == XFRST_END) { + if (xfr->state == XFRST_END) { /* * Inform the caller we succeeded. */