diff --git a/CHANGES b/CHANGES index fb89a1e611..a0f9b52c9a 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ + 186 [func] dns_request_getresponse() has an additional arguement + 'preserve_order'. + 185. [bug] Fixed up handling of ISC_MEMCLUSTER_LEGACY. Several public functions did not have an isc__ prefix, and referred to functions that had previously been diff --git a/lib/dns/include/dns/request.h b/lib/dns/include/dns/request.h index fd099e0ac0..74c7e18d55 100644 --- a/lib/dns/include/dns/request.h +++ b/lib/dns/include/dns/request.h @@ -181,9 +181,13 @@ dns_request_cancel(dns_request_t *request); */ isc_result_t -dns_request_getresponse(dns_request_t *request, dns_message_t *message); +dns_request_getresponse(dns_request_t *request, dns_message_t *message, + isc_boolean_t preserve_order); /* - * Get the response to 'request'. + * Get the response to 'request' by filling in 'message'. + * + * 'preserve_order' is passed to dns_message_parse(). See dns_message_parse() + * for more details. * * Requires: * diff --git a/lib/dns/request.c b/lib/dns/request.c index b882dd087a..93b48fe76b 100644 --- a/lib/dns/request.c +++ b/lib/dns/request.c @@ -92,8 +92,8 @@ static void mgr_shutdown(dns_requestmgr_t *requestmgr); static unsigned int mgr_gethash(dns_requestmgr_t *requestmgr); static void send_shutdown_events(dns_requestmgr_t *requestmgr); -static isc_result_t render(dns_message_t *message, isc_buffer_t **buffer, - isc_mem_t *mctx); +static isc_result_t req_render(dns_message_t *message, isc_buffer_t **buffer, + isc_mem_t *mctx); static void req_senddone(isc_task_t *task, isc_event_t *event); static void req_response(isc_task_t *task, isc_event_t *event); static void req_timeout(isc_task_t *task, isc_event_t *event); @@ -523,7 +523,7 @@ dns_request_create(dns_requestmgr_t *requestmgr, dns_message_t *message, goto cleanup; message->id = id; - result = render(message, &request->query, mctx); + result = req_render(message, &request->query, mctx); if (result == DNS_R_USETCP && (options & DNS_REQUESTOPT_TCP) == 0) { /* @@ -610,7 +610,7 @@ dns_request_create(dns_requestmgr_t *requestmgr, dns_message_t *message, } static isc_result_t -render(dns_message_t *message, isc_buffer_t **bufferp, isc_mem_t *mctx) { +req_render(dns_message_t *message, isc_buffer_t **bufferp, isc_mem_t *mctx) { isc_buffer_t *buf1 = NULL; isc_buffer_t *buf2 = NULL; isc_result_t result; @@ -698,14 +698,16 @@ dns_request_cancel(dns_request_t *request) { } isc_result_t -dns_request_getresponse(dns_request_t *request, dns_message_t *message) { +dns_request_getresponse(dns_request_t *request, dns_message_t *message, + isc_boolean_t preserve_order) +{ REQUIRE(VALID_REQUEST(request)); REQUIRE(request->answer != NULL); req_log(ISC_LOG_DEBUG(3), "dns_request_getresponse: request %p", request); - return (dns_message_parse(message, request->answer, ISC_TRUE)); + return (dns_message_parse(message, request->answer, preserve_order)); } void diff --git a/lib/dns/zone.c b/lib/dns/zone.c index 8bac595874..4fee592ad6 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -15,7 +15,7 @@ * SOFTWARE. */ -/* $Id: zone.c,v 1.116 2000/05/17 19:45:31 gson Exp $ */ +/* $Id: zone.c,v 1.117 2000/05/18 02:59:16 marka Exp $ */ #include @@ -1871,7 +1871,7 @@ refresh_callback(isc_task_t *task, isc_event_t *event) { result = dns_message_create(zone->mctx, DNS_MESSAGE_INTENTPARSE, &msg); if (result != ISC_R_SUCCESS) goto next_master; - result = dns_request_getresponse(revent->request, msg); + result = dns_request_getresponse(revent->request, msg, ISC_FALSE); if (result != ISC_R_SUCCESS) goto next_master;