2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-09-01 06:55:30 +00:00

libdns refactoring: get rid of multiple versions of dns_request_createraw and dns_request_createvia

This commit is contained in:
Witold Kręcicki
2018-04-03 15:12:27 +02:00
parent e2a06db7f3
commit 8c12e488f7
8 changed files with 125 additions and 283 deletions

View File

@@ -2493,11 +2493,11 @@ send_update(dns_name_t *zone, isc_sockaddr_t *master) {
if (updatemsg->tsigname)
updatemsg->tsigname->attributes |= DNS_NAMEATTR_NOCOMPRESS;
result = dns_request_createvia3(requestmgr, updatemsg, srcaddr,
master, options, tsigkey, timeout,
udp_timeout, udp_retries, global_task,
update_completed, NULL, &request);
check_result(result, "dns_request_createvia3");
result = dns_request_createvia(requestmgr, updatemsg, srcaddr,
master, -1, options, tsigkey, timeout,
udp_timeout, udp_retries, global_task,
update_completed, NULL, &request);
check_result(result, "dns_request_createvia");
if (debugging)
show_message(stdout, updatemsg, "Outgoing update query:");
@@ -2602,13 +2602,13 @@ recvsoa(isc_task_t *task, isc_event_t *event) {
else
srcaddr = localaddr4;
result = dns_request_createvia3(requestmgr, soaquery, srcaddr,
addr, 0, NULL,
FIND_TIMEOUT * 20,
FIND_TIMEOUT, 3,
global_task, recvsoa, reqinfo,
&request);
check_result(result, "dns_request_createvia3");
result = dns_request_createvia(requestmgr, soaquery, srcaddr,
addr, -1, 0, NULL,
FIND_TIMEOUT * 20,
FIND_TIMEOUT, 3,
global_task, recvsoa, reqinfo,
&request);
check_result(result, "dns_request_createvia");
requests++;
return;
}
@@ -2805,11 +2805,11 @@ sendrequest(isc_sockaddr_t *destaddr, dns_message_t *msg,
else
srcaddr = localaddr4;
result = dns_request_createvia3(requestmgr, msg, srcaddr, destaddr, 0,
default_servers ? NULL : tsigkey,
FIND_TIMEOUT * 20, FIND_TIMEOUT, 3,
global_task, recvsoa, reqinfo, request);
check_result(result, "dns_request_createvia3");
result = dns_request_createvia(requestmgr, msg, srcaddr, destaddr, -1,
0, default_servers ? NULL : tsigkey,
FIND_TIMEOUT * 20, FIND_TIMEOUT, 3,
global_task, recvsoa, reqinfo, request);
check_result(result, "dns_request_createvia");
requests++;
}
@@ -3003,11 +3003,11 @@ send_gssrequest(isc_sockaddr_t *destaddr, dns_message_t *msg,
else
srcaddr = localaddr4;
result = dns_request_createvia3(requestmgr, msg, srcaddr, destaddr,
options, tsigkey, FIND_TIMEOUT * 20,
FIND_TIMEOUT, 3, global_task, recvgss,
reqinfo, request);
check_result(result, "dns_request_createvia3");
result = dns_request_createvia(requestmgr, msg, srcaddr, destaddr,
-1, options, tsigkey, FIND_TIMEOUT * 20,
FIND_TIMEOUT, 3, global_task, recvgss,
reqinfo, request);
check_result(result, "dns_request_createvia");
if (debugging)
show_message(stdout, msg, "Outgoing update query:");
requests++;

View File

@@ -177,8 +177,10 @@ sendquery(isc_task_t *task) {
request = NULL;
result = dns_request_createvia(requestmgr, message,
have_src ? &srcaddr : NULL, &dstaddr,
DNS_REQUESTOPT_TCP|DNS_REQUESTOPT_SHARE,
NULL, TIMEOUT, task, recvresponse,
-1,
DNS_REQUESTOPT_TCP |
DNS_REQUESTOPT_SHARE,
NULL, TIMEOUT, 0, 0, task, recvresponse,
message, &request);
CHECK("dns_request_create", result);

View File

@@ -684,12 +684,12 @@ sendquery(struct query *query, isc_task_t *task)
if (tcp_mode)
options |= DNS_REQUESTOPT_TCP | DNS_REQUESTOPT_SHARE;
request = NULL;
result = dns_request_createvia4(requestmgr, message,
have_src ? &srcaddr : NULL, &dstaddr,
dscp, options, NULL,
query->timeout, query->udptimeout,
query->udpretries, task,
recvresponse, message, &request);
result = dns_request_createvia(requestmgr, message,
have_src ? &srcaddr : NULL, &dstaddr,
dscp, options, NULL,
query->timeout, query->udptimeout,
query->udpretries, task,
recvresponse, message, &request);
CHECK("dns_request_createvia4", result);
return ISC_R_SUCCESS;

View File

@@ -1785,11 +1785,11 @@ dns_client_startrequest(dns_client_t *client, dns_message_t *qmessage,
UNLOCK(&client->lock);
ctx->request = NULL;
result = dns_request_createvia3(view->requestmgr, qmessage, NULL,
server, reqoptions, ctx->tsigkey,
timeout, udptimeout, udpretries,
client->task, request_done, ctx,
&ctx->request);
result = dns_request_createvia(view->requestmgr, qmessage, NULL,
server, -1, reqoptions, ctx->tsigkey,
timeout, udptimeout, udpretries,
client->task, request_done, ctx,
&ctx->request);
if (result == ISC_R_SUCCESS) {
dns_view_detach(&view);
*transp = (dns_clientreqtrans_t *)ctx;
@@ -1992,18 +1992,19 @@ update_done(isc_task_t *task, isc_event_t *event) {
reqoptions = 0;
if (uctx->want_tcp)
reqoptions |= DNS_REQUESTOPT_TCP;
result = dns_request_createvia3(uctx->view->requestmgr,
uctx->updatemsg,
NULL,
uctx->currentserver,
reqoptions,
uctx->tsigkey,
timeout,
client->update_udptimeout,
client->update_udpretries,
client->task,
update_done, uctx,
&uctx->updatereq);
result = dns_request_createvia(uctx->view->requestmgr,
uctx->updatemsg,
NULL,
uctx->currentserver,
-1,
reqoptions,
uctx->tsigkey,
timeout,
client->update_udptimeout,
client->update_udpretries,
client->task,
update_done, uctx,
&uctx->updatereq);
UNLOCK(&uctx->lock);
if (result == ISC_R_SUCCESS) {
@@ -2053,14 +2054,14 @@ send_update(updatectx_t *uctx) {
reqoptions = 0;
if (uctx->want_tcp)
reqoptions |= DNS_REQUESTOPT_TCP;
result = dns_request_createvia3(uctx->view->requestmgr,
uctx->updatemsg,
NULL, uctx->currentserver,
reqoptions, uctx->tsigkey, timeout,
client->update_udptimeout,
client->update_udpretries,
client->task, update_done, uctx,
&uctx->updatereq);
result = dns_request_createvia(uctx->view->requestmgr,
uctx->updatemsg,
NULL, uctx->currentserver,
-1, reqoptions, uctx->tsigkey, timeout,
client->update_udptimeout,
client->update_udpretries,
client->task, update_done, uctx,
&uctx->updatereq);
if (result == ISC_R_SUCCESS &&
uctx->state == dns_clientupdatestate_prepare) {
uctx->state = dns_clientupdatestate_sent;
@@ -2311,14 +2312,14 @@ receive_soa(isc_task_t *task, isc_event_t *event) {
reqoptions = 0;
if (uctx->want_tcp)
reqoptions |= DNS_REQUESTOPT_TCP;
result = dns_request_createvia3(uctx->view->requestmgr,
uctx->soaquery, NULL, addr,
reqoptions, NULL,
client->find_timeout * 20,
client->find_timeout, 3,
uctx->client->task,
receive_soa, uctx,
&newrequest);
result = dns_request_createvia(uctx->view->requestmgr,
uctx->soaquery, NULL, addr, -1,
reqoptions, NULL,
client->find_timeout * 20,
client->find_timeout, 3,
uctx->client->task,
receive_soa, uctx,
&newrequest);
if (result == ISC_R_SUCCESS) {
LOCK(&uctx->lock);
dns_request_destroy(&uctx->soareq);
@@ -2414,17 +2415,18 @@ receive_soa(isc_task_t *task, isc_event_t *event) {
reqoptions = 0;
if (uctx->want_tcp)
reqoptions |= DNS_REQUESTOPT_TCP;
result = dns_request_createvia3(uctx->view->requestmgr,
soaquery, NULL,
uctx->currentserver,
reqoptions,
uctx->tsigkey,
client->find_timeout *
20,
client->find_timeout,
3, client->task,
receive_soa, uctx,
&uctx->soareq);
result = dns_request_createvia(uctx->view->requestmgr,
soaquery, NULL,
uctx->currentserver,
-1,
reqoptions,
uctx->tsigkey,
client->find_timeout *
20,
client->find_timeout,
3, client->task,
receive_soa, uctx,
&uctx->soareq);
}
}
@@ -2474,13 +2476,13 @@ request_soa(updatectx_t *uctx) {
if (uctx->want_tcp)
reqoptions |= DNS_REQUESTOPT_TCP;
result = dns_request_createvia3(uctx->view->requestmgr,
soaquery, NULL, uctx->currentserver,
reqoptions, uctx->tsigkey,
uctx->client->find_timeout * 20,
uctx->client->find_timeout, 3,
uctx->client->task, receive_soa, uctx,
&uctx->soareq);
result = dns_request_createvia(uctx->view->requestmgr,
soaquery, NULL, uctx->currentserver,
-1, reqoptions, uctx->tsigkey,
uctx->client->find_timeout * 20,
uctx->client->find_timeout, 3,
uctx->client->task, receive_soa, uctx,
&uctx->soareq);
if (result == ISC_R_SUCCESS) {
uctx->soaquery = soaquery;
return (ISC_R_SUCCESS);

View File

@@ -193,45 +193,15 @@ dns_request_create(dns_requestmgr_t *requestmgr, dns_message_t *message,
*\li requestp != NULL && *requestp == NULL
*/
/*% See dns_request_createvia4() */
isc_result_t
dns_request_createvia(dns_requestmgr_t *requestmgr, dns_message_t *message,
const isc_sockaddr_t *srcaddr,
const isc_sockaddr_t *destaddr, unsigned int options,
const isc_sockaddr_t *destaddr,
isc_dscp_t dscp, unsigned int options,
dns_tsigkey_t *key, unsigned int timeout,
unsigned int udptimeout, unsigned int udpretries,
isc_task_t *task, isc_taskaction_t action, void *arg,
dns_request_t **requestp);
/*% See dns_request_createvia4() */
isc_result_t
dns_request_createvia2(dns_requestmgr_t *requestmgr, dns_message_t *message,
const isc_sockaddr_t *srcaddr,
const isc_sockaddr_t *destaddr,
unsigned int options, dns_tsigkey_t *key,
unsigned int timeout, unsigned int udptimeout,
isc_task_t *task, isc_taskaction_t action, void *arg,
dns_request_t **requestp);
/*% See dns_request_createvia4() */
isc_result_t
dns_request_createvia3(dns_requestmgr_t *requestmgr, dns_message_t *message,
const isc_sockaddr_t *srcaddr,
const isc_sockaddr_t *destaddr,
unsigned int options, dns_tsigkey_t *key,
unsigned int timeout, unsigned int udptimeout,
unsigned int udpretries, isc_task_t *task,
isc_taskaction_t action, void *arg,
dns_request_t **requestp);
isc_result_t
dns_request_createvia4(dns_requestmgr_t *requestmgr, dns_message_t *message,
const isc_sockaddr_t *srcaddr,
const isc_sockaddr_t *destaddr,
isc_dscp_t dscp, unsigned int options,
dns_tsigkey_t *key, unsigned int timeout,
unsigned int udptimeout, unsigned int udpretries,
isc_task_t *task, isc_taskaction_t action, void *arg,
dns_request_t **requestp);
/*%<
* Create and send a request.
*
@@ -267,44 +237,15 @@ dns_request_createvia4(dns_requestmgr_t *requestmgr, dns_message_t *message,
*\li requestp != NULL && *requestp == NULL
*/
/*% See dns_request_createraw4() */
isc_result_t
dns_request_createraw(dns_requestmgr_t *requestmgr, isc_buffer_t *msgbuf,
const isc_sockaddr_t *srcaddr,
const isc_sockaddr_t *destaddr,
unsigned int options, unsigned int timeout,
isc_task_t *task, isc_taskaction_t action, void *arg,
isc_dscp_t dscp, unsigned int options,
unsigned int timeout, unsigned int udptimeout,
unsigned int udpretries, isc_task_t *task,
isc_taskaction_t action, void *arg,
dns_request_t **requestp);
/*% See dns_request_createraw4() */
isc_result_t
dns_request_createraw2(dns_requestmgr_t *requestmgr, isc_buffer_t *msgbuf,
const isc_sockaddr_t *srcaddr,
const isc_sockaddr_t *destaddr,
unsigned int options, unsigned int timeout,
unsigned int udptimeout, isc_task_t *task,
isc_taskaction_t action, void *arg,
dns_request_t **requestp);
/*% See dns_request_createraw4() */
isc_result_t
dns_request_createraw3(dns_requestmgr_t *requestmgr, isc_buffer_t *msgbuf,
const isc_sockaddr_t *srcaddr,
const isc_sockaddr_t *destaddr,
unsigned int options, unsigned int timeout,
unsigned int udptimeout, unsigned int udpretries,
isc_task_t *task, isc_taskaction_t action, void *arg,
dns_request_t **requestp);
isc_result_t
dns_request_createraw4(dns_requestmgr_t *requestmgr, isc_buffer_t *msgbuf,
const isc_sockaddr_t *srcaddr,
const isc_sockaddr_t *destaddr,
isc_dscp_t dscp, unsigned int options,
unsigned int timeout, unsigned int udptimeout,
unsigned int udpretries, isc_task_t *task,
isc_taskaction_t action, void *arg,
dns_request_t **requestp);
/*!<
* \brief Create and send a request.
*

View File

@@ -692,59 +692,11 @@ isc_result_t
dns_request_createraw(dns_requestmgr_t *requestmgr, isc_buffer_t *msgbuf,
const isc_sockaddr_t *srcaddr,
const isc_sockaddr_t *destaddr,
unsigned int options, unsigned int timeout,
isc_task_t *task, isc_taskaction_t action, void *arg,
isc_dscp_t dscp, unsigned int options,
unsigned int timeout, unsigned int udptimeout,
unsigned int udpretries, isc_task_t *task,
isc_taskaction_t action, void *arg,
dns_request_t **requestp)
{
return(dns_request_createraw4(requestmgr, msgbuf, srcaddr, destaddr,
-1, options, timeout, 0, 0, task, action,
arg, requestp));
}
isc_result_t
dns_request_createraw2(dns_requestmgr_t *requestmgr, isc_buffer_t *msgbuf,
const isc_sockaddr_t *srcaddr,
const isc_sockaddr_t *destaddr,
unsigned int options, unsigned int timeout,
unsigned int udptimeout, isc_task_t *task,
isc_taskaction_t action, void *arg,
dns_request_t **requestp)
{
unsigned int udpretries = 0;
if (udptimeout != 0)
udpretries = timeout / udptimeout;
return (dns_request_createraw4(requestmgr, msgbuf, srcaddr, destaddr,
-1, options, timeout, udptimeout,
udpretries, task, action, arg,
requestp));
}
isc_result_t
dns_request_createraw3(dns_requestmgr_t *requestmgr, isc_buffer_t *msgbuf,
const isc_sockaddr_t *srcaddr,
const isc_sockaddr_t *destaddr,
unsigned int options, unsigned int timeout,
unsigned int udptimeout, unsigned int udpretries,
isc_task_t *task, isc_taskaction_t action, void *arg,
dns_request_t **requestp)
{
return (dns_request_createraw4(requestmgr, msgbuf, srcaddr, destaddr,
-1, options, timeout, udptimeout,
udpretries, task, action, arg,
requestp));
}
isc_result_t
dns_request_createraw4(dns_requestmgr_t *requestmgr, isc_buffer_t *msgbuf,
const isc_sockaddr_t *srcaddr,
const isc_sockaddr_t *destaddr,
isc_dscp_t dscp, unsigned int options,
unsigned int timeout, unsigned int udptimeout,
unsigned int udpretries, isc_task_t *task,
isc_taskaction_t action, void *arg,
dns_request_t **requestp)
{
dns_request_t *request = NULL;
isc_task_t *tclone = NULL;
@@ -921,69 +873,20 @@ dns_request_create(dns_requestmgr_t *requestmgr, dns_message_t *message,
isc_taskaction_t action, void *arg,
dns_request_t **requestp)
{
return (dns_request_createvia4(requestmgr, message, NULL, address,
-1, options, key, timeout, 0, 0, task,
action, arg, requestp));
return (dns_request_createvia(requestmgr, message, NULL, address,
-1, options, key, timeout, 0, 0, task,
action, arg, requestp));
}
isc_result_t
dns_request_createvia(dns_requestmgr_t *requestmgr, dns_message_t *message,
const isc_sockaddr_t *srcaddr,
const isc_sockaddr_t *destaddr,
unsigned int options, dns_tsigkey_t *key,
unsigned int timeout, isc_task_t *task,
isc_taskaction_t action, void *arg,
isc_dscp_t dscp, unsigned int options,
dns_tsigkey_t *key, unsigned int timeout,
unsigned int udptimeout, unsigned int udpretries,
isc_task_t *task, isc_taskaction_t action, void *arg,
dns_request_t **requestp)
{
return(dns_request_createvia4(requestmgr, message, srcaddr, destaddr,
-1, options, key, timeout, 0, 0, task,
action, arg, requestp));
}
isc_result_t
dns_request_createvia2(dns_requestmgr_t *requestmgr, dns_message_t *message,
const isc_sockaddr_t *srcaddr,
const isc_sockaddr_t *destaddr,
unsigned int options, dns_tsigkey_t *key,
unsigned int timeout, unsigned int udptimeout,
isc_task_t *task, isc_taskaction_t action, void *arg,
dns_request_t **requestp)
{
unsigned int udpretries = 0;
if (udptimeout != 0)
udpretries = timeout / udptimeout;
return (dns_request_createvia4(requestmgr, message, srcaddr, destaddr,
-1, options, key, timeout, udptimeout,
udpretries, task, action, arg,
requestp));
}
isc_result_t
dns_request_createvia3(dns_requestmgr_t *requestmgr, dns_message_t *message,
const isc_sockaddr_t *srcaddr,
const isc_sockaddr_t *destaddr,
unsigned int options, dns_tsigkey_t *key,
unsigned int timeout, unsigned int udptimeout,
unsigned int udpretries, isc_task_t *task,
isc_taskaction_t action, void *arg,
dns_request_t **requestp)
{
return (dns_request_createvia4(requestmgr, message, srcaddr, destaddr,
-1, options, key, timeout, udptimeout,
udpretries, task, action, arg,
requestp));
}
isc_result_t
dns_request_createvia4(dns_requestmgr_t *requestmgr, dns_message_t *message,
const isc_sockaddr_t *srcaddr,
const isc_sockaddr_t *destaddr,
isc_dscp_t dscp, unsigned int options,
dns_tsigkey_t *key, unsigned int timeout,
unsigned int udptimeout, unsigned int udpretries,
isc_task_t *task, isc_taskaction_t action, void *arg,
dns_request_t **requestp)
{
dns_request_t *request = NULL;
isc_task_t *tclone = NULL;

View File

@@ -851,13 +851,7 @@ dns_rdatatypestats_increment
dns_request_cancel
dns_request_create
dns_request_createraw
dns_request_createraw2
dns_request_createraw3
dns_request_createraw4
dns_request_createvia
dns_request_createvia2
dns_request_createvia3
dns_request_createvia4
dns_request_destroy
dns_request_getresponse
dns_request_usedtcp

View File

@@ -11015,11 +11015,11 @@ notify_send_toaddr(isc_task_t *task, isc_event_t *event) {
timeout = 15;
if (DNS_ZONE_FLAG(notify->zone, DNS_ZONEFLG_DIALNOTIFY))
timeout = 30;
result = dns_request_createvia4(notify->zone->view->requestmgr,
message, &src, &notify->dst, dscp,
options, key, timeout * 3, timeout,
0, notify->zone->task, notify_done,
notify, &notify->request);
result = dns_request_createvia(notify->zone->view->requestmgr,
message, &src, &notify->dst, dscp,
options, key, timeout * 3, timeout,
0, notify->zone->task, notify_done,
notify, &notify->request);
if (result == ISC_R_SUCCESS) {
if (isc_sockaddr_pf(&notify->dst) == AF_INET) {
inc_stats(notify->zone,
@@ -12422,11 +12422,11 @@ soa_query(isc_task_t *task, isc_event_t *event) {
timeout = 15;
if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_DIALREFRESH))
timeout = 30;
result = dns_request_createvia4(zone->view->requestmgr, message,
&zone->sourceaddr, &zone->masteraddr,
dscp, options, key, timeout * 3,
timeout, 0, zone->task,
refresh_callback, zone, &zone->request);
result = dns_request_createvia(zone->view->requestmgr, message,
&zone->sourceaddr, &zone->masteraddr,
dscp, options, key, timeout * 3,
timeout, 0, zone->task,
refresh_callback, zone, &zone->request);
if (result != ISC_R_SUCCESS) {
zone_idetach(&dummy);
zone_debuglog(zone, me, 1,
@@ -12668,11 +12668,11 @@ ns_query(dns_zone_t *zone, dns_rdataset_t *soardataset, dns_stub_t *stub) {
timeout = 15;
if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_DIALREFRESH))
timeout = 30;
result = dns_request_createvia4(zone->view->requestmgr, message,
&zone->sourceaddr, &zone->masteraddr,
dscp, DNS_REQUESTOPT_TCP, key,
timeout * 3, timeout, 0, zone->task,
stub_callback, stub, &zone->request);
result = dns_request_createvia(zone->view->requestmgr, message,
&zone->sourceaddr, &zone->masteraddr,
dscp, DNS_REQUESTOPT_TCP, key,
timeout * 3, timeout, 0, zone->task,
stub_callback, stub, &zone->request);
if (result != ISC_R_SUCCESS) {
zone_debuglog(zone, me, 1,
"dns_request_createvia() failed: %s",
@@ -15708,13 +15708,13 @@ sendtomaster(dns_forward_t *forward) {
result = ISC_R_NOTIMPLEMENTED;
goto unlock;
}
result = dns_request_createraw4(forward->zone->view->requestmgr,
forward->msgbuf,
&src, &forward->addr, dscp,
forward->options, 15 /* XXX */,
0, 0, forward->zone->task,
forward_callback, forward,
&forward->request);
result = dns_request_createraw(forward->zone->view->requestmgr,
forward->msgbuf,
&src, &forward->addr, dscp,
forward->options, 15 /* XXX */,
0, 0, forward->zone->task,
forward_callback, forward,
&forward->request);
if (result == ISC_R_SUCCESS) {
if (!ISC_LINK_LINKED(forward, link))
ISC_LIST_APPEND(forward->zone->forwards, forward, link);