Change dns_message_create() function to accept memory pools
Instead of creating new memory pools for each new dns_message, change dns_message_create() method to optionally accept externally created dns_fixedname_t and dns_rdataset_t memory pools. This allows us to preallocate the memory pools in ns_client and dns_resolver units for the lifetime of dns_resolver_t and ns_clientmgr_t.
This commit is contained in:
@@ -1959,7 +1959,8 @@ recvresponse(void *arg) {
|
||||
fatal("request event result: %s", isc_result_totext(result));
|
||||
}
|
||||
|
||||
dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &response);
|
||||
dns_message_create(mctx, NULL, NULL, DNS_MESSAGE_INTENTPARSE,
|
||||
&response);
|
||||
|
||||
result = dns_request_getresponse(request, response,
|
||||
DNS_MESSAGEPARSE_PRESERVEORDER);
|
||||
@@ -2074,7 +2075,8 @@ sendquery(void *arg) {
|
||||
/* Construct query message */
|
||||
CHECK(convert_name(&qfn, &query_name, qname));
|
||||
|
||||
dns_message_create(mctx, DNS_MESSAGE_INTENTRENDER, &message);
|
||||
dns_message_create(mctx, NULL, NULL, DNS_MESSAGE_INTENTRENDER,
|
||||
&message);
|
||||
message->opcode = dns_opcode_query;
|
||||
message->flags = DNS_MESSAGEFLAG_RD | DNS_MESSAGEFLAG_AD;
|
||||
if (cdflag) {
|
||||
|
||||
@@ -2192,7 +2192,8 @@ setup_lookup(dig_lookup_t *lookup) {
|
||||
|
||||
debug("setup_lookup(%p)", lookup);
|
||||
|
||||
dns_message_create(mctx, DNS_MESSAGE_INTENTRENDER, &lookup->sendmsg);
|
||||
dns_message_create(mctx, NULL, NULL, DNS_MESSAGE_INTENTRENDER,
|
||||
&lookup->sendmsg);
|
||||
|
||||
if (lookup->new_search) {
|
||||
debug("resetting lookup counter.");
|
||||
@@ -4124,7 +4125,7 @@ recv_done(isc_nmhandle_t *handle, isc_result_t eresult, isc_region_t *region,
|
||||
goto keep_query;
|
||||
}
|
||||
|
||||
dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &msg);
|
||||
dns_message_create(mctx, NULL, NULL, DNS_MESSAGE_INTENTPARSE, &msg);
|
||||
|
||||
if (tsigkey != NULL) {
|
||||
if (l->querysig == NULL) {
|
||||
|
||||
@@ -364,7 +364,8 @@ reset_system(void) {
|
||||
if (updatemsg != NULL) {
|
||||
dns_message_reset(updatemsg, DNS_MESSAGE_INTENTRENDER);
|
||||
} else {
|
||||
dns_message_create(gmctx, DNS_MESSAGE_INTENTRENDER, &updatemsg);
|
||||
dns_message_create(gmctx, NULL, NULL, DNS_MESSAGE_INTENTRENDER,
|
||||
&updatemsg);
|
||||
}
|
||||
updatemsg->opcode = dns_opcode_update;
|
||||
if (usegsstsig) {
|
||||
@@ -2470,7 +2471,7 @@ update_completed(void *arg) {
|
||||
}
|
||||
|
||||
LOCK(&answer_lock);
|
||||
dns_message_create(gmctx, DNS_MESSAGE_INTENTPARSE, &answer);
|
||||
dns_message_create(gmctx, NULL, NULL, DNS_MESSAGE_INTENTPARSE, &answer);
|
||||
result = dns_request_getresponse(request, answer,
|
||||
DNS_MESSAGEPARSE_PRESERVEORDER);
|
||||
switch (result) {
|
||||
@@ -2658,7 +2659,7 @@ recvsoa(void *arg) {
|
||||
reqinfo = NULL;
|
||||
|
||||
ddebug("About to create rcvmsg");
|
||||
dns_message_create(gmctx, DNS_MESSAGE_INTENTPARSE, &rcvmsg);
|
||||
dns_message_create(gmctx, NULL, NULL, DNS_MESSAGE_INTENTPARSE, &rcvmsg);
|
||||
result = dns_request_getresponse(request, rcvmsg,
|
||||
DNS_MESSAGEPARSE_PRESERVEORDER);
|
||||
if (result == DNS_R_TSIGERRORSET && servers != NULL) {
|
||||
@@ -3069,7 +3070,7 @@ start_gssrequest(dns_name_t *primary) {
|
||||
keyname->attributes.nocompress = true;
|
||||
|
||||
rmsg = NULL;
|
||||
dns_message_create(gmctx, DNS_MESSAGE_INTENTRENDER, &rmsg);
|
||||
dns_message_create(gmctx, NULL, NULL, DNS_MESSAGE_INTENTRENDER, &rmsg);
|
||||
|
||||
/* Build first request. */
|
||||
context = GSS_C_NO_CONTEXT;
|
||||
@@ -3184,7 +3185,7 @@ recvgss(void *arg) {
|
||||
isc_mem_put(gmctx, reqinfo, sizeof(nsu_gssinfo_t));
|
||||
|
||||
ddebug("recvgss creating rcvmsg");
|
||||
dns_message_create(gmctx, DNS_MESSAGE_INTENTPARSE, &rcvmsg);
|
||||
dns_message_create(gmctx, NULL, NULL, DNS_MESSAGE_INTENTPARSE, &rcvmsg);
|
||||
|
||||
result = dns_request_getresponse(request, rcvmsg,
|
||||
DNS_MESSAGEPARSE_PRESERVEORDER);
|
||||
@@ -3295,7 +3296,8 @@ start_update(void) {
|
||||
return;
|
||||
}
|
||||
|
||||
dns_message_create(gmctx, DNS_MESSAGE_INTENTRENDER, &soaquery);
|
||||
dns_message_create(gmctx, NULL, NULL, DNS_MESSAGE_INTENTRENDER,
|
||||
&soaquery);
|
||||
|
||||
if (default_servers) {
|
||||
soaquery->flags |= DNS_MESSAGEFLAG_RD;
|
||||
|
||||
@@ -79,7 +79,8 @@ recvresponse(void *arg) {
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &response);
|
||||
dns_message_create(mctx, NULL, NULL, DNS_MESSAGE_INTENTPARSE,
|
||||
&response);
|
||||
|
||||
result = dns_request_getresponse(request, response,
|
||||
DNS_MESSAGEPARSE_PRESERVEORDER);
|
||||
@@ -141,7 +142,8 @@ sendquery(void) {
|
||||
dns_rootname, 0, NULL);
|
||||
CHECK("dns_name_fromtext", result);
|
||||
|
||||
dns_message_create(mctx, DNS_MESSAGE_INTENTRENDER, &message);
|
||||
dns_message_create(mctx, NULL, NULL, DNS_MESSAGE_INTENTRENDER,
|
||||
&message);
|
||||
|
||||
message->opcode = dns_opcode_query;
|
||||
message->flags |= DNS_MESSAGEFLAG_RD;
|
||||
|
||||
@@ -270,7 +270,7 @@ process_message(isc_buffer_t *source) {
|
||||
int i;
|
||||
|
||||
message = NULL;
|
||||
dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &message);
|
||||
dns_message_create(mctx, NULL, NULL, DNS_MESSAGE_INTENTPARSE, &message);
|
||||
|
||||
result = dns_message_parse(message, source, parseflags);
|
||||
if (result == DNS_R_RECOVERABLE) {
|
||||
@@ -339,7 +339,8 @@ process_message(isc_buffer_t *source) {
|
||||
isc_mem_stats(mctx, stdout);
|
||||
}
|
||||
|
||||
dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &message);
|
||||
dns_message_create(mctx, NULL, NULL, DNS_MESSAGE_INTENTPARSE,
|
||||
&message);
|
||||
|
||||
result = dns_message_parse(message, &buffer, parseflags);
|
||||
CHECKRESULT(result, "dns_message_parse failed");
|
||||
|
||||
@@ -211,7 +211,8 @@ recvresponse(void *arg) {
|
||||
}
|
||||
}
|
||||
|
||||
dns_message_create(mctx, DNS_MESSAGE_INTENTPARSE, &response);
|
||||
dns_message_create(mctx, NULL, NULL, DNS_MESSAGE_INTENTPARSE,
|
||||
&response);
|
||||
|
||||
parseflags |= DNS_MESSAGEPARSE_PRESERVEORDER;
|
||||
if (besteffort) {
|
||||
@@ -593,7 +594,8 @@ sendquery(struct query *query) {
|
||||
dns_rootname, 0, NULL);
|
||||
CHECK("dns_name_fromtext", result);
|
||||
|
||||
dns_message_create(mctx, DNS_MESSAGE_INTENTRENDER, &message);
|
||||
dns_message_create(mctx, NULL, NULL, DNS_MESSAGE_INTENTRENDER,
|
||||
&message);
|
||||
|
||||
message->opcode = dns_opcode_query;
|
||||
if (query->recurse) {
|
||||
|
||||
Reference in New Issue
Block a user