From 5fcf1b4f16871e7219ff7e5c0b62b287c2ffc0a0 Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Fri, 19 May 2000 01:49:19 +0000 Subject: [PATCH] Add dns_rdata_tostruct() to tests suite -S --- bin/tests/rdata_test.c | 236 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 235 insertions(+), 1 deletion(-) diff --git a/bin/tests/rdata_test.c b/bin/tests/rdata_test.c index 2f2ffada8b..ba40ed3282 100644 --- a/bin/tests/rdata_test.c +++ b/bin/tests/rdata_test.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include @@ -37,6 +38,233 @@ isc_lex_t *lex; isc_lexspecials_t specials; +static void +viastruct(dns_rdata_t *rdata) { + isc_result_t result; + + switch (rdata->type) { + case dns_rdatatype_a6: { + dns_rdata_in_a6_t in_a6; + result = dns_rdata_tostruct(rdata, &in_a6, NULL); + break; + } + case dns_rdatatype_a: { + switch (rdata->rdclass) { + case dns_rdataclass_hs: { + dns_rdata_hs_a_t hs_a; + result = dns_rdata_tostruct(rdata, &hs_a, NULL); + break; + } + case dns_rdataclass_in: { + dns_rdata_in_a_t in_a; + result = dns_rdata_tostruct(rdata, &in_a, NULL); + break; + } + default: + result = ISC_R_NOTIMPLEMENTED; + break; + } + break; + } + case dns_rdatatype_aaaa: { + dns_rdata_in_aaaa_t in_aaaa; + result = dns_rdata_tostruct(rdata, &in_aaaa, NULL); + break; + } + case dns_rdatatype_afsdb: { + dns_rdata_afsdb_t afsdb; + result = dns_rdata_tostruct(rdata, &afsdb, NULL); + break; + } + case dns_rdatatype_any: { + result = ISC_R_NOTIMPLEMENTED; + break; + } + case dns_rdatatype_cert: { + dns_rdata_cert_t cert; + result = dns_rdata_tostruct(rdata, &cert, NULL); + break; + } + case dns_rdatatype_cname: { + dns_rdata_cname_t cname; + result = dns_rdata_tostruct(rdata, &cname, NULL); + break; + } + case dns_rdatatype_dname: { + dns_rdata_dname_t dname; + result = dns_rdata_tostruct(rdata, &dname, NULL); + break; + } + case dns_rdatatype_gpos: { + dns_rdata_gpos_t gpos; + result = dns_rdata_tostruct(rdata, &gpos, NULL); + break; + } + case dns_rdatatype_hinfo: { + dns_rdata_hinfo_t hinfo; + result = dns_rdata_tostruct(rdata, &hinfo, NULL); + break; + } + case dns_rdatatype_isdn: { + dns_rdata_isdn_t isdn; + result = dns_rdata_tostruct(rdata, &isdn, NULL); + break; + } + case dns_rdatatype_key: { + dns_rdata_key_t key; + result = dns_rdata_tostruct(rdata, &key, NULL); + break; + } + case dns_rdatatype_kx: { + dns_rdata_in_kx_t in_kx; + result = dns_rdata_tostruct(rdata, &in_kx, NULL); + break; + } + case dns_rdatatype_loc: { + dns_rdata_loc_t loc; + result = dns_rdata_tostruct(rdata, &loc, NULL); + break; + } + case dns_rdatatype_mb: { + dns_rdata_mb_t mb; + result = dns_rdata_tostruct(rdata, &mb, NULL); + break; + } + case dns_rdatatype_md: { + dns_rdata_md_t md; + result = dns_rdata_tostruct(rdata, &md, NULL); + break; + } + case dns_rdatatype_mf: { + dns_rdata_mf_t mf; + result = dns_rdata_tostruct(rdata, &mf, NULL); + break; + } + case dns_rdatatype_mg: { + dns_rdata_mg_t mg; + result = dns_rdata_tostruct(rdata, &mg, NULL); + break; + } + case dns_rdatatype_minfo: { + dns_rdata_minfo_t minfo; + result = dns_rdata_tostruct(rdata, &minfo, NULL); + break; + } + case dns_rdatatype_mr: { + dns_rdata_mr_t mr; + result = dns_rdata_tostruct(rdata, &mr, NULL); + break; + } + case dns_rdatatype_mx: { + dns_rdata_mx_t mx; + result = dns_rdata_tostruct(rdata, &mx, NULL); + break; + } + case dns_rdatatype_naptr: { + dns_rdata_in_naptr_t in_naptr; + result = dns_rdata_tostruct(rdata, &in_naptr, NULL); + break; + } + case dns_rdatatype_ns: { + dns_rdata_ns_t ns; + result = dns_rdata_tostruct(rdata, &ns, NULL); + break; + } + case dns_rdatatype_nsap: { + dns_rdata_in_nsap_t in_nsap; + result = dns_rdata_tostruct(rdata, &in_nsap, NULL); + break; + } + case dns_rdatatype_nsap_ptr: { + dns_rdata_in_nsap_ptr_t in_nsap_ptr; + result = dns_rdata_tostruct(rdata, &in_nsap_ptr, NULL); + break; + } + case dns_rdatatype_null: { + dns_rdata_null_t null; + result = dns_rdata_tostruct(rdata, &null, NULL); + break; + } + case dns_rdatatype_nxt: { + dns_rdata_nxt_t nxt; + result = dns_rdata_tostruct(rdata, &nxt, NULL); + break; + } + case dns_rdatatype_opt: { + dns_rdata_opt_t opt; + result = dns_rdata_tostruct(rdata, &opt, NULL); + break; + } + case dns_rdatatype_ptr: { + dns_rdata_ptr_t ptr; + result = dns_rdata_tostruct(rdata, &ptr, NULL); + break; + } + case dns_rdatatype_px: { + dns_rdata_in_px_t in_px; + result = dns_rdata_tostruct(rdata, &in_px, NULL); + break; + } + case dns_rdatatype_rp: { + dns_rdata_rp_t rp; + result = dns_rdata_tostruct(rdata, &rp, NULL); + break; + } + case dns_rdatatype_rt: { + dns_rdata_rt_t rt; + result = dns_rdata_tostruct(rdata, &rt, NULL); + break; + } + case dns_rdatatype_sig: { + dns_rdata_sig_t sig; + result = dns_rdata_tostruct(rdata, &sig, NULL); + break; + } + case dns_rdatatype_soa: { + dns_rdata_soa_t soa; + result = dns_rdata_tostruct(rdata, &soa, NULL); + break; + } + case dns_rdatatype_srv: { + dns_rdata_in_srv_t in_srv; + result = dns_rdata_tostruct(rdata, &in_srv, NULL); + break; + } + case dns_rdatatype_tkey: { + dns_rdata_tkey_t tkey; + result = dns_rdata_tostruct(rdata, &tkey, NULL); + break; + } + case dns_rdatatype_txt: { + dns_rdata_txt_t txt; + result = dns_rdata_tostruct(rdata, &txt, NULL); + break; + } + case dns_rdatatype_unspec: { + dns_rdata_unspec_t unspec; + result = dns_rdata_tostruct(rdata, &unspec, NULL); + break; + } + case dns_rdatatype_wks: { + dns_rdata_in_wks_t in_wks; + result = dns_rdata_tostruct(rdata, &in_wks, NULL); + break; + } + case dns_rdatatype_x25: { + dns_rdata_x25_t x25; + result = dns_rdata_tostruct(rdata, &x25, NULL); + break; + } + default: + result = ISC_R_NOTIMPLEMENTED; + break; + } + if (result != ISC_R_SUCCESS) + printf("viastruct: tostuct %d %d return %s\n", + rdata->type, rdata->rdclass, + dns_result_totext(result)); +} + int main(int argc, char *argv[]) { isc_token_t token; @@ -68,8 +296,9 @@ main(int argc, char *argv[]) { isc_region_t region; int first = 1; int raw = 0; + int tostruct = 0; - while ((c = isc_commandline_parse(argc, argv, "dqswtarz")) != -1) { + while ((c = isc_commandline_parse(argc, argv, "dqswtarzS")) != -1) { switch (c) { case 'd': debug = 1; @@ -97,6 +326,9 @@ main(int argc, char *argv[]) { case 'r': raw++; break; + case 'S': + tostruct++; + break; } } @@ -281,6 +513,8 @@ main(int argc, char *argv[]) { fputs(" ", stdout); } } + if (tostruct) + viastruct(&rdata); isc_buffer_init(&tbuf, outbuf, sizeof(outbuf)); result = dns_rdata_totext(&rdata, NULL, &tbuf);