From 421551db8a61283420b0b6aed4ac28f9d76b9770 Mon Sep 17 00:00:00 2001 From: Andreas Gustafsson Date: Wed, 28 Mar 2001 00:22:16 +0000 Subject: [PATCH] new functions dns_master_rdatasettotext() and dns_master_questiontotext(), replacing dns_rdataset_totext() --- lib/dns/include/dns/masterdump.h | 40 +++++++++++++++++++++++++++++++- lib/dns/include/dns/rdataset.h | 15 ++++++------ lib/dns/masterdump.c | 39 ++++++++++++++++++++++++------- 3 files changed, 77 insertions(+), 17 deletions(-) diff --git a/lib/dns/include/dns/masterdump.h b/lib/dns/include/dns/masterdump.h index 5eaedc1acb..357ea2fbf7 100644 --- a/lib/dns/include/dns/masterdump.h +++ b/lib/dns/include/dns/masterdump.h @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: masterdump.h,v 1.18 2001/01/12 19:58:51 bwelling Exp $ */ +/* $Id: masterdump.h,v 1.19 2001/03/28 00:22:15 gson Exp $ */ #ifndef DNS_MASTERDUMP_H #define DNS_MASTERDUMP_H 1 @@ -119,6 +119,44 @@ dns_master_dump(isc_mem_t *mctx, dns_db_t *db, * Any dns_rdata_totext() error code. */ +isc_result_t +dns_master_rdatasettotext(dns_name_t *owner_name, + dns_rdataset_t *rdataset, + const dns_master_style_t *style, + isc_buffer_t *target); +/* + * Convert 'rdataset' to text format, storing the result in 'target'. + * + * Notes: + * The rdata cursor position will be changed. + * + * Requires: + * 'rdataset' is a valid non-question rdataset. + * + * 'rdataset' is not empty. + */ + +isc_result_t +dns_master_questiontotext(dns_name_t *owner_name, + dns_rdataset_t *rdataset, + isc_buffer_t *target); +/* + * Print a text representation of 'rdataset', a pseudo-rdataset + * representing a questino. + * + * Requires: + * 'rdataset' is a valid question rdataset. + * + * 'rdataset' is not empty. + */ + +isc_result_t +dns_rdataset_towire(dns_rdataset_t *rdataset, + dns_name_t *owner_name, + dns_compress_t *cctx, + isc_buffer_t *target, + unsigned int *countp); + isc_result_t dns_master_dumpnodetostream(isc_mem_t *mctx, dns_db_t *db, dns_dbversion_t *version, diff --git a/lib/dns/include/dns/rdataset.h b/lib/dns/include/dns/rdataset.h index b80e42841e..e5b15b75fe 100644 --- a/lib/dns/include/dns/rdataset.h +++ b/lib/dns/include/dns/rdataset.h @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: rdataset.h,v 1.38 2001/01/09 21:53:17 bwelling Exp $ */ +/* $Id: rdataset.h,v 1.39 2001/03/28 00:22:16 gson Exp $ */ #ifndef DNS_RDATASET_H #define DNS_RDATASET_H 1 @@ -278,7 +278,7 @@ isc_result_t dns_rdataset_totext(dns_rdataset_t *rdataset, dns_name_t *owner_name, isc_boolean_t omit_final_dot, - isc_boolean_t no_rdata_or_ttl, + isc_boolean_t question, isc_buffer_t *target); /* * Convert 'rdataset' to text format, storing the result in 'target'. @@ -286,18 +286,17 @@ dns_rdataset_totext(dns_rdataset_t *rdataset, * Notes: * The rdata cursor position will be changed. * - * The no_rdata_or_ttl should normally be ISC_FALSE. If it is ISC_TRUE - * the ttl and rdata fields are not printed. This is mainly for use - * in the question section. + * The 'question' flag should normally be ISC_FALSE. If it is + * ISC_TRUE, the TTL and rdata fields are not printed. This is + * for use when printing an rdata representing a question section. * - * XXX may need to add 'origin' parameter if we go with that in rdata. + * This interface is deprecated; use dns_master_rdatasettottext() + * and/or dns_master_questiontotext() instead. * * Requires: * 'rdataset' is a valid rdataset. * * 'rdataset' is not empty. - * - * XXX Supply more Requires and Ensures XXX */ isc_result_t diff --git a/lib/dns/masterdump.c b/lib/dns/masterdump.c index 38050d7d78..b9a781ac04 100644 --- a/lib/dns/masterdump.c +++ b/lib/dns/masterdump.c @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: masterdump.c,v 1.45 2001/03/07 22:30:21 gson Exp $ */ +/* $Id: masterdump.c,v 1.46 2001/03/28 00:22:13 gson Exp $ */ #include @@ -526,16 +526,11 @@ question_totext(dns_rdataset_t *rdataset, return (ISC_R_SUCCESS); } -/* - * Provide a backwards compatible interface for printing a - * single rdataset or question section. This is now used - * only by wire_test.c. - */ isc_result_t dns_rdataset_totext(dns_rdataset_t *rdataset, dns_name_t *owner_name, isc_boolean_t omit_final_dot, - isc_boolean_t no_rdata_or_ttl, + isc_boolean_t question, isc_buffer_t *target) { dns_totext_ctx_t ctx; @@ -556,7 +551,7 @@ dns_rdataset_totext(dns_rdataset_t *rdataset, if (dns_name_countlabels(owner_name) == 0) owner_name = NULL; - if (no_rdata_or_ttl) + if (question) return (question_totext(rdataset, owner_name, &ctx, omit_final_dot, target)); else @@ -564,6 +559,34 @@ dns_rdataset_totext(dns_rdataset_t *rdataset, omit_final_dot, target)); } +isc_result_t +dns_master_rdatasettotext(dns_name_t *owner_name, + dns_rdataset_t *rdataset, + const dns_master_style_t *style, + isc_buffer_t *target) +{ + dns_totext_ctx_t ctx; + isc_result_t result; + result = totext_ctx_init(style, &ctx); + if (result != ISC_R_SUCCESS) { + UNEXPECTED_ERROR(__FILE__, __LINE__, + "could not set master file style"); + return (ISC_R_UNEXPECTED); + } + + return (rdataset_totext(rdataset, owner_name, &ctx, + ISC_FALSE, target)); +} + +isc_result_t +dns_master_questiontotext(dns_name_t *owner_name, + dns_rdataset_t *rdataset, + isc_buffer_t *target) +{ + return (question_totext(rdataset, owner_name, NULL, + ISC_FALSE, target)); +} + /* * Print an rdataset. 'buffer' is a scratch buffer, which must have been * dynamically allocated by the caller. It must be large enough to