Add dns_rdata_tostruct() to tests suite -S

This commit is contained in:
Mark Andrews
2000-05-19 01:49:19 +00:00
parent 187604c1ad
commit 5fcf1b4f16

View File

@@ -29,6 +29,7 @@
#include <dns/rdata.h>
#include <dns/compress.h>
#include <dns/rdataclass.h>
#include <dns/rdatastruct.h>
#include <dns/rdatatype.h>
#include <dns/result.h>
@@ -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);