From 4fd3e3482c7e4ce01e2cf28f13e0152c8e50d746 Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Wed, 5 May 1999 01:55:13 +0000 Subject: [PATCH] dns_rdata_tostruct() conversion --- lib/dns/Makefile.in | 12 +- lib/dns/gen.c | 49 ++- lib/dns/include/dns/.cvsignore | 1 + lib/dns/include/dns/result.h | 1 + lib/dns/rdata.c | 3 +- lib/dns/rdata/any_255/tsig_250.h | 283 +-------------- lib/dns/rdata/generic/afsdb_18.h | 168 +-------- lib/dns/rdata/generic/cert_37.h | 158 +------- lib/dns/rdata/generic/cname_5.h | 131 +------ lib/dns/rdata/generic/dname_39.h | 129 +------ lib/dns/rdata/generic/gpos_27.h | 111 +----- lib/dns/rdata/generic/hinfo_13.h | 103 +----- lib/dns/rdata/generic/isdn_20.h | 109 ------ lib/dns/rdata/generic/key_25.h | 153 +------- lib/dns/rdata/generic/loc_29.h | 565 +---------------------------- lib/dns/rdata/generic/mb_7.h | 131 +------ lib/dns/rdata/generic/md_3.h | 129 +------ lib/dns/rdata/generic/mf_4.h | 129 +------ lib/dns/rdata/generic/mg_8.h | 131 +------ lib/dns/rdata/generic/minfo_14.h | 177 +-------- lib/dns/rdata/generic/mr_9.h | 131 +------ lib/dns/rdata/generic/mx_15.h | 168 +-------- lib/dns/rdata/generic/ns_2.h | 131 +------ lib/dns/rdata/generic/null_10.h | 96 +---- lib/dns/rdata/generic/nxt_30.h | 195 +--------- lib/dns/rdata/generic/proforma.h | 89 +---- lib/dns/rdata/generic/ptr_12.h | 131 +------ lib/dns/rdata/generic/rp_17.h | 177 +-------- lib/dns/rdata/generic/rt_21.h | 167 +-------- lib/dns/rdata/generic/sig_24.h | 294 +-------------- lib/dns/rdata/generic/soa_6.h | 235 +----------- lib/dns/rdata/generic/tkey_249.h | 274 +------------- lib/dns/rdata/generic/txt_16.h | 124 +------ lib/dns/rdata/generic/unspec_103.h | 94 +---- lib/dns/rdata/generic/x25_19.h | 108 +----- lib/dns/rdata/in_1/a6_38.h | 253 +------------ lib/dns/rdata/in_1/a_1.h | 151 +------- lib/dns/rdata/in_1/aaaa_28.h | 144 +------- lib/dns/rdata/in_1/kx_36.h | 158 +------- lib/dns/rdata/in_1/naptr_35.h | 244 +------------ lib/dns/rdata/in_1/nsap-ptr_23.h | 136 +------ lib/dns/rdata/in_1/nsap_22.h | 144 +------- lib/dns/rdata/in_1/px_26.h | 200 +--------- lib/dns/rdata/in_1/srv_33.h | 189 +--------- lib/dns/rdata/in_1/wks_11.h | 218 +---------- 45 files changed, 111 insertions(+), 6813 deletions(-) diff --git a/lib/dns/Makefile.in b/lib/dns/Makefile.in index 5ea7dc613c..7a637a7963 100644 --- a/lib/dns/Makefile.in +++ b/lib/dns/Makefile.in @@ -38,8 +38,14 @@ OBJS = callbacks.o compress.o db.o dbiterator.o dbtable.o \ rdata.o rdatalist.o rdataset.o rdatasetiter.o rdataslab.o \ result.o version.o +OSRC = callbacks.c compress.c db.c dbiterator.c dbtable.c \ + master.c name.c rbt.c rbtdb.c rbtdb64.c \ + rdata.c rdatalist.c rdataset.c rdatasetiter.c rdataslab.c \ + result.c version.c + SUBDIRS = include -TARGETS = include/dns/enumtype.h include/dns/enumclass.h timestamp +TARGETS = include/dns/enumtype.h include/dns/enumclass.h \ + include/dns/rdatastruct.h timestamp @BIND9_MAKE_RULES@ @@ -64,6 +70,7 @@ install:: timestamp installdirs clean distclean:: rm -f libdns.a timestamp rm -f gen code.h include/dns/enumtype.h include/dns/enumclass.h + rm -f include/dns/rdatastruct.h rdata.o: code.h @@ -73,6 +80,9 @@ include/dns/enumtype.h: gen include/dns/enumclass.h: gen ./gen -s ${srcdir} -c > $@ +include/dns/rdatastruct.h: gen + ./gen -s ${srcdir} -i > $@ + code.h: gen ./gen -s ${srcdir} > code.h diff --git a/lib/dns/gen.c b/lib/dns/gen.c index 4e5a251d10..6cfe898cf2 100644 --- a/lib/dns/gen.c +++ b/lib/dns/gen.c @@ -15,7 +15,7 @@ * SOFTWARE. */ - /* $Id: gen.c,v 1.17 1999/04/29 06:10:27 explorer Exp $ */ + /* $Id: gen.c,v 1.18 1999/05/05 01:55:07 marka Exp $ */ #include @@ -112,7 +112,7 @@ char * funname(char *, char *); void doswitch(char *, char *, char *, char *, char *, char *); void dodecl(char *, char *, char *); void add(int, char *, int, char *, char *); -void sd(int, char *, char *); +void sd(int, char *, char *, char); char * upper(char *s) { @@ -284,8 +284,9 @@ add(int class, char *classname, int type, char *typename, char *dirname) { } void -sd(int class, char *classname, char *dir) { +sd(int class, char *classname, char *dir, char filetype) { char buf[sizeof "0123456789_65535.h"]; + char fmt[sizeof "%10[-0-9a-z]_%d.h"]; DIR *d; int type; char typename[11]; @@ -294,14 +295,14 @@ sd(int class, char *classname, char *dir) { if ((d = opendir(dir)) == NULL) return; + sprintf(fmt,"%s%c", "%10[-0-9a-z]_%d.", filetype); while ((dp = readdir(d)) != NULL) { - if (sscanf(dp->d_name, "%10[-0-9a-z]_%d.h", - typename, &type) != 2) + if (sscanf(dp->d_name, fmt, typename, &type) != 2) continue; if ((type > 65535) || (type < 0)) continue; - sprintf(buf, "%s_%d.h", typename, type); + sprintf(buf, "%s_%d.%c", typename, type, filetype); if (strcmp(buf, dp->d_name) != 0) continue; add(class, classname, type, typename, dir); @@ -326,21 +327,35 @@ main(int argc, char **argv) { int code = 1; int class_enum = 0; int type_enum = 0; + int structs = 0; int c; char buf1[11]; + char filetype = 'c'; + FILE *fd; strcpy(srcdir, ""); - while ((c = getopt(argc, argv, "cts:")) != -1) + while ((c = getopt(argc, argv, "ctis:")) != -1) switch (c) { case 'c': code = 0; type_enum = 0; class_enum = 1; + filetype = 'c'; + structs = 0; break; case 't': code = 0; class_enum = 0; type_enum = 1; + filetype = 'c'; + structs = 0; + break; + case 'i': + code = 0; + class_enum = 0; + type_enum = 0; + structs = 1; + filetype = 'h'; break; case 's': sprintf(srcdir, "%s/", optarg); @@ -363,11 +378,11 @@ main(int argc, char **argv) { sprintf(buf, "%srdata/%s_%d", srcdir, classname, class); if (strcmp(buf + 6 + strlen(srcdir), dp->d_name) != 0) continue; - sd(class, classname, buf); + sd(class, classname, buf, filetype); } - sprintf(buf, "%srdata/generic", srcdir); - sd(0, "", buf); closedir(d); + sprintf(buf, "%srdata/generic", srcdir); + sd(0, "", buf, filetype); if (time(&now) != -1) { if ((tm = localtime(&now)) != NULL && tm->tm_year > 98) @@ -426,7 +441,7 @@ main(int argc, char **argv) { fputs("\n", stdout); for (tt = types; tt != NULL ; tt = tt->next) - fprintf(stdout, "#include \"%s/%s_%d.h\"\n", + fprintf(stdout, "#include \"%s/%s_%d.c\"\n", tt->dirname, tt->typename, tt->type); } else if (type_enum) { fprintf(stdout, "#ifndef TYPEENUM\n"); @@ -452,8 +467,16 @@ main(int argc, char **argv) { cc->class, cc->next != NULL ? " \\" : ""); fprintf(stdout, "#endif /* CLASSENUM */\n"); - - + } else if (structs) { + for (tt = types; tt != NULL ; tt = tt->next) { + sprintf(buf, "%s/%s_%d.h", + tt->dirname, tt->typename, tt->type); + if ((fd = fopen(buf,"r")) != NULL) { + while (fgets(buf, sizeof buf, fd) != NULL) + fputs(buf, stdout); + fclose(fd); + } + } } if (ferror(stdout) != 0) diff --git a/lib/dns/include/dns/.cvsignore b/lib/dns/include/dns/.cvsignore index 275562c97a..5aa676e52e 100644 --- a/lib/dns/include/dns/.cvsignore +++ b/lib/dns/include/dns/.cvsignore @@ -1,3 +1,4 @@ Makefile enumtype.h enumclass.h +rdatastruct.h diff --git a/lib/dns/include/dns/result.h b/lib/dns/include/dns/result.h index 3c20e078db..e23885d608 100644 --- a/lib/dns/include/dns/result.h +++ b/lib/dns/include/dns/result.h @@ -70,6 +70,7 @@ typedef unsigned int dns_result_t; #define DNS_R_BADDB 43 #define DNS_R_ZONECUT 44 #define DNS_R_FORMERR 45 +#define DNS_R_BADZONE 46 /* XXX MPA*/ #define DNS_R_LASTENTRY 45 /* Last entry on list. */ diff --git a/lib/dns/rdata.c b/lib/dns/rdata.c index 8d13d42b65..3f3d0476e6 100644 --- a/lib/dns/rdata.c +++ b/lib/dns/rdata.c @@ -15,7 +15,7 @@ * SOFTWARE. */ - /* $Id: rdata.c,v 1.40 1999/05/03 19:56:53 halley Exp $ */ + /* $Id: rdata.c,v 1.41 1999/05/05 01:55:08 marka Exp $ */ #include @@ -38,6 +38,7 @@ #include #include #include +#include #define RETERR(x) do { \ dns_result_t __r = (x); \ diff --git a/lib/dns/rdata/any_255/tsig_250.h b/lib/dns/rdata/any_255/tsig_250.h index 302b0875e1..8fd43913c2 100644 --- a/lib/dns/rdata/any_255/tsig_250.h +++ b/lib/dns/rdata/any_255/tsig_250.h @@ -15,292 +15,11 @@ * SOFTWARE. */ - /* $Id: tsig_250.h,v 1.7 1999/02/24 06:31:32 marka Exp $ */ + /* $Id: tsig_250.h,v 1.8 1999/05/05 01:55:08 marka Exp $ */ /* draft-ietf-dnsind-tsig-07.txt */ #ifndef RDATA_ANY_255_TSIG_250_H #define RDATA_ANY_255_TSIG_250_H -#include -static dns_result_t -fromtext_any_tsig(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - dns_name_t name; - isc_uint64_t sigtime; - isc_buffer_t buffer; - char *e; - - REQUIRE(type == 250); - REQUIRE(class == 255); - - /* Algorithm Name */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - RETERR(dns_name_fromtext(&name, &buffer, origin, downcase, target)); - - /* Time Signed: 48 bits */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - sigtime = isc_strtouq(token.value.as_pointer, &e, 10); - if (*e != 0) - return (DNS_R_SYNTAX); - if ((sigtime >> 48) != 0) - return(DNS_R_RANGE); - RETERR(uint16_tobuffer(sigtime >> 32, target)); - RETERR(uint32_tobuffer(sigtime & 0xffffffff, target)); - - /* Fudge */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - if (token.value.as_ulong > 0xffff) - return (DNS_R_RANGE); - RETERR(uint16_tobuffer(token.value.as_ulong, target)); - - /* Signature Size */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - if (token.value.as_ulong > 0xffff) - return (DNS_R_RANGE); - RETERR(uint16_tobuffer(token.value.as_ulong, target)); - - /* Signature */ - RETERR(base64_tobuffer(lexer, target, token.value.as_ulong)); - - /* Original ID */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - if (token.value.as_ulong > 0xffff) - return (DNS_R_RANGE); - RETERR(uint16_tobuffer(token.value.as_ulong, target)); - - /* Error */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - if (token.value.as_ulong > 0xffff) - return (DNS_R_RANGE); - RETERR(uint16_tobuffer(token.value.as_ulong, target)); - - /* Other Len */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - if (token.value.as_ulong > 0xffff) - return (DNS_R_RANGE); - RETERR(uint16_tobuffer(token.value.as_ulong, target)); - - /* Other Data */ - return (base64_tobuffer(lexer, target, token.value.as_ulong)); -} - -static dns_result_t -totext_any_tsig(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t sr; - isc_region_t sigr; - char buf[sizeof "281474976710655 "]; - char *bufp; - dns_name_t name; - dns_name_t prefix; - isc_boolean_t sub; - isc_uint64_t sigtime; - unsigned short n; - - REQUIRE(rdata->type == 250); - REQUIRE(rdata->class == 255); - - dns_rdata_toregion(rdata, &sr); - /* Algorithm Name */ - dns_name_init(&name, NULL); - dns_name_init(&prefix, NULL); - dns_name_fromregion(&name, &sr); - sub = name_prefix(&name, origin, &prefix); - RETERR(dns_name_totext(&prefix, sub, target)); - RETERR(str_totext(" ", target)); - isc_region_consume(&sr, name_length(&name)); - - /* Time Signed */ - sigtime = ((isc_uint64_t)sr.base[0] << 40) | - ((isc_uint64_t)sr.base[1] << 32) | - (sr.base[2] << 24) | (sr.base[3] << 16) | - (sr.base[4] << 8) | sr.base[5]; - isc_region_consume(&sr, 6); - bufp = &buf[sizeof buf - 1]; - *bufp-- = 0; - *bufp-- = ' '; - do { - *bufp-- = decdigits[sigtime % 10]; - sigtime /= 10; - } while (sigtime != 0); - bufp++; - RETERR(str_totext(bufp, target)); - - /* Fudge */ - n = uint16_fromregion(&sr); - isc_region_consume(&sr, 2); - sprintf(buf, "%u ", n); - RETERR(str_totext(buf, target)); - - /* Signature Size */ - n = uint16_fromregion(&sr); - isc_region_consume(&sr, 2); - sprintf(buf, "%u ", n); - RETERR(str_totext(buf, target)); - - /* Signature */ - REQUIRE(n <= sr.length); - sigr = sr; - sigr.length = n; - RETERR(base64_totext(&sigr, target)); - RETERR(str_totext(" ", target)); - isc_region_consume(&sr, n); - - /* Original ID */ - n = uint16_fromregion(&sr); - isc_region_consume(&sr, 2); - sprintf(buf, "%u ", n); - RETERR(str_totext(buf, target)); - - /* Error */ - n = uint16_fromregion(&sr); - isc_region_consume(&sr, 2); - sprintf(buf, "%u ", n); - RETERR(str_totext(buf, target)); - - /* Other Size */ - n = uint16_fromregion(&sr); - isc_region_consume(&sr, 2); - sprintf(buf, "%u ", n); - RETERR(str_totext(buf, target)); - - /* Other */ - return (base64_totext(&sr, target)); -} - -static dns_result_t -fromwire_any_tsig(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_region_t sr; - dns_name_t name; - unsigned long n; - - REQUIRE(type == 250); - REQUIRE(class == 255); - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_NONE); - - /* Algorithm Name */ - dns_name_init(&name, NULL); - RETERR(dns_name_fromwire(&name, source, dctx, downcase, target)); - - isc_buffer_active(source, &sr); - /* Time Signed + Fudge */ - if (sr.length < 8) - return (DNS_R_UNEXPECTEDEND); - RETERR(mem_tobuffer(target, sr.base, 8)); - isc_region_consume(&sr, 8); - isc_buffer_forward(source, 8); - - /* Signature Length + Signature */ - if (sr.length < 2) - return (DNS_R_UNEXPECTEDEND); - n = uint16_fromregion(&sr); - if (sr.length < n + 2) - return (DNS_R_UNEXPECTEDEND); - RETERR(mem_tobuffer(target, sr.base, n + 2)); - isc_region_consume(&sr, n + 2); - isc_buffer_forward(source, n + 2); - - /* Original ID + Error */ - if (sr.length < 4) - return (DNS_R_UNEXPECTEDEND); - RETERR(mem_tobuffer(target, sr.base, 4)); - isc_region_consume(&sr, 4); - isc_buffer_forward(source, 4); - - /* Other Length + Other */ - if (sr.length < 2) - return (DNS_R_UNEXPECTEDEND); - n = uint16_fromregion(&sr); - if (sr.length < n + 2) - return (DNS_R_UNEXPECTEDEND); - isc_buffer_forward(source, n + 2); - return (mem_tobuffer(target, sr.base, n + 2)); -} - -static dns_result_t -towire_any_tsig(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - isc_region_t sr; - dns_name_t name; - - REQUIRE(rdata->type == 250); - REQUIRE(rdata->class == 255); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); - - dns_rdata_toregion(rdata, &sr); - dns_name_init(&name, NULL); - dns_name_fromregion(&name, &sr); - RETERR(dns_name_towire(&name, cctx, target)); - isc_region_consume(&sr, name_length(&name)); - return (mem_tobuffer(target, sr.base, sr.length)); -} - -static int -compare_any_tsig(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - isc_region_t r1; - isc_region_t r2; - dns_name_t name1; - dns_name_t name2; - int result; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 250); - REQUIRE(rdata1->class == 255); - - dns_rdata_toregion(rdata1, &r1); - dns_rdata_toregion(rdata2, &r2); - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - dns_name_fromregion(&name1, &r1); - dns_name_fromregion(&name2, &r2); - result = dns_name_rdatacompare(&name1, &name2); - if (result != 0) - return (result); - isc_region_consume(&r1, name_length(&name1)); - isc_region_consume(&r2, name_length(&name2)); - return (compare_region(&r1, &r2)); -} - -static dns_result_t -fromstruct_any_tsig(dns_rdataclass_t class, dns_rdatatype_t type, - void *source, isc_buffer_t *target) -{ - - REQUIRE(type == 250); - REQUIRE(class == 255); - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_any_tsig(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 250); - REQUIRE(rdata->class == 255); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_ANY_255_TSIG_250_H */ diff --git a/lib/dns/rdata/generic/afsdb_18.h b/lib/dns/rdata/generic/afsdb_18.h index 2a35f4ebd4..963956dc11 100644 --- a/lib/dns/rdata/generic/afsdb_18.h +++ b/lib/dns/rdata/generic/afsdb_18.h @@ -15,176 +15,10 @@ * SOFTWARE. */ - /* $Id: afsdb_18.h,v 1.5 1999/02/24 06:31:32 marka Exp $ */ + /* $Id: afsdb_18.h,v 1.6 1999/05/05 01:55:08 marka Exp $ */ /* RFC 1183 */ #ifndef RDATA_GENERIC_AFSDB_18_H #define RDATA_GENERIC_AFSDB_18_H - -static dns_result_t -fromtext_afsdb(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - isc_buffer_t buffer; - dns_name_t name; - - REQUIRE(type == 18); - - class = class; /*unused*/ - - /* subtype */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - RETERR(uint16_tobuffer(token.value.as_ulong, target)); - - /* hostname */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - return (dns_name_fromtext(&name, &buffer, origin, downcase, target)); -} - -static dns_result_t -totext_afsdb(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - dns_name_t name; - dns_name_t prefix; - isc_region_t region; - char buf[sizeof "64000 "]; - isc_boolean_t sub; - unsigned int num; - - - REQUIRE(rdata->type == 18); - - dns_name_init(&name, NULL); - dns_name_init(&prefix, NULL); - - dns_rdata_toregion(rdata, ®ion); - num = uint16_fromregion(®ion); - isc_region_consume(®ion, 2); - sprintf(buf, "%u ", num); - RETERR(str_totext(buf, target)); - dns_name_fromregion(&name, ®ion); - sub = name_prefix(&name, origin, &prefix); - return(dns_name_totext(&prefix, sub, target)); -} - -static dns_result_t -fromwire_afsdb(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - dns_name_t name; - isc_region_t sr; - isc_region_t tr; - - REQUIRE(type == 18); - - class = class; /*unused*/ - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_NONE); - - dns_name_init(&name, NULL); - - isc_buffer_active(source, &sr); - isc_buffer_available(target, &tr); - if (tr.length < 2) - return (DNS_R_NOSPACE); - if (sr.length < 2) - return (DNS_R_UNEXPECTEDEND); - memcpy(tr.base, sr.base, 2); - isc_buffer_forward(source, 2); - isc_buffer_add(target, 2); - return (dns_name_fromwire(&name, source, dctx, downcase, target)); -} - -static dns_result_t -towire_afsdb(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - isc_region_t tr; - isc_region_t sr; - dns_name_t name; - - REQUIRE(rdata->type == 18); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); - - isc_buffer_available(target, &tr); - dns_rdata_toregion(rdata, &sr); - if (tr.length < 2) - return (DNS_R_NOSPACE); - memcpy(tr.base, sr.base, 2); - isc_region_consume(&sr, 2); - isc_buffer_add(target, 2); - - dns_name_init(&name, NULL); - dns_name_fromregion(&name, &sr); - - return (dns_name_towire(&name, cctx, target)); -} - -static int -compare_afsdb(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - int result; - dns_name_t name1; - dns_name_t name2; - isc_region_t region1; - isc_region_t region2; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 18); - - result = memcmp(rdata1->data, rdata2->data, 2); - if (result != 0) - return (result < 0 ? -1 : 1); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_rdata_toregion(rdata1, ®ion1); - dns_rdata_toregion(rdata2, ®ion2); - - isc_region_consume(®ion1, 2); - isc_region_consume(®ion2, 2); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - return (dns_name_rdatacompare(&name1, &name2)); -} - -static dns_result_t -fromstruct_afsdb(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 18); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_afsdb(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 18); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_AFSDB_18_H */ diff --git a/lib/dns/rdata/generic/cert_37.h b/lib/dns/rdata/generic/cert_37.h index f5257a4bb4..29f08f85c1 100644 --- a/lib/dns/rdata/generic/cert_37.h +++ b/lib/dns/rdata/generic/cert_37.h @@ -15,166 +15,10 @@ * SOFTWARE. */ - /* $Id: cert_37.h,v 1.5 1999/02/16 22:42:24 marka Exp $ */ + /* $Id: cert_37.h,v 1.6 1999/05/05 01:55:08 marka Exp $ */ /* draft-ietf-dnssec-certs-04.txt */ #ifndef RDATA_GENERIC_CERT_37_H #define RDATA_GENERIC_CERT_37_H - -static dns_result_t -fromtext_cert(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - long n; - dns_secalg_t secalg; - char *e; - dns_cert_t cert; - - REQUIRE(type == 37); - - class = class; /*unused*/ - origin = origin; /*unused*/ - downcase = downcase; /*unused*/ - - /* cert type */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - n = strtol(token.value.as_pointer, &e, 10); - if (*e != 0) { - RETERR(dns_cert_fromtext(&cert, &token.value.as_textregion)); - } else { - if (n < 0 || n > 0xffff) - return (DNS_R_RANGE); - cert = n; - } - RETERR(uint16_tobuffer(cert, target)); - - /* key tag */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - if (token.value.as_ulong > 0xffff) - return (DNS_R_RANGE); - RETERR(uint16_tobuffer(token.value.as_ulong, target)); - - /* algorithm */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - n = strtol(token.value.as_pointer, &e, 10); - if (*e != 0) { - RETERR(dns_secalg_fromtext(&secalg, - &token.value.as_textregion)); - } else { - if (n < 0 || n > 0xff) - return (DNS_R_RANGE); - secalg = n; - } - RETERR(mem_tobuffer(target, &secalg, 1)); - - return (base64_tobuffer(lexer, target, -1)); -} - -static dns_result_t -totext_cert(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t sr; - char buf[sizeof "64000 "]; - unsigned int n; - - REQUIRE(rdata->type == 37); - - origin = origin; /*unused*/ - - dns_rdata_toregion(rdata, &sr); - - /* type */ - n = uint16_fromregion(&sr); - isc_region_consume(&sr, 2); - RETERR(dns_cert_totext(n, target)); - RETERR(str_totext(" ", target)); - - /* key tag */ - n = uint16_fromregion(&sr); - isc_region_consume(&sr, 2); - sprintf(buf, "%u ", n); - RETERR(str_totext(buf, target)); - - /* algorithm */ - RETERR(dns_secalg_totext(sr.base[0], target)); - RETERR(str_totext(" ", target)); - isc_region_consume(&sr, 1); - - /* cert */ - return (base64_totext(&sr, target)); -} - -static dns_result_t -fromwire_cert(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_region_t sr; - - REQUIRE(type == 37); - - class = class; /*unused*/ - dctx = dctx; /*unused*/ - downcase = downcase; /*unused*/ - - isc_buffer_active(source, &sr); - if (sr.length < 5) - return (DNS_R_UNEXPECTEDEND); - - isc_buffer_forward(source, sr.length); - return (mem_tobuffer(target, sr.base, sr.length)); -} - -static dns_result_t -towire_cert(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - isc_region_t sr; - - REQUIRE(rdata->type == 37); - - cctx = cctx; /*unused*/ - - dns_rdata_toregion(rdata, &sr); - return (mem_tobuffer(target, sr.base, sr.length)); -} - -static int -compare_cert(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - isc_region_t r1; - isc_region_t r2; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 37); - - dns_rdata_toregion(rdata1, &r1); - dns_rdata_toregion(rdata2, &r2); - return (compare_region(&r1, &r2)); -} - -static dns_result_t -fromstruct_cert(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 37); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_cert(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 37); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_CERT_37_H */ diff --git a/lib/dns/rdata/generic/cname_5.h b/lib/dns/rdata/generic/cname_5.h index ae1daaf0e8..8857098333 100644 --- a/lib/dns/rdata/generic/cname_5.h +++ b/lib/dns/rdata/generic/cname_5.h @@ -15,137 +15,8 @@ * SOFTWARE. */ - /* $Id: cname_5.h,v 1.11 1999/02/24 06:31:32 marka Exp $ */ + /* $Id: cname_5.h,v 1.12 1999/05/05 01:55:08 marka Exp $ */ #ifndef RDATA_GENERIC_CNAME_5_H #define RDATA_GENERIC_CNAME_5_H - -static dns_result_t -fromtext_cname(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - dns_name_t name; - isc_buffer_t buffer; - - REQUIRE(type == 5); - - class = class; /*unused*/ - - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - return (dns_name_fromtext(&name, &buffer, origin, downcase, target)); -} - -static dns_result_t -totext_cname(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - dns_name_t name; - dns_name_t prefix; - isc_boolean_t sub; - - REQUIRE(rdata->type == 5); - - dns_name_init(&name, NULL); - dns_name_init(&prefix, NULL); - - dns_rdata_toregion(rdata, ®ion); - dns_name_fromregion(&name, ®ion); - - sub = name_prefix(&name, origin, &prefix); - - return (dns_name_totext(&prefix, sub, target)); -} - -static dns_result_t -fromwire_cname(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - dns_name_t name; - - REQUIRE(type == 5); - - class = class; /*unused*/ - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_GLOBAL14); - - dns_name_init(&name, NULL); - return(dns_name_fromwire(&name, source, dctx, downcase, target)); -} - -static dns_result_t -towire_cname(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - dns_name_t name; - isc_region_t region; - - REQUIRE(rdata->type == 5); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_GLOBAL14); - - dns_name_init(&name, NULL); - dns_rdata_toregion(rdata, ®ion); - dns_name_fromregion(&name, ®ion); - - return (dns_name_towire(&name, cctx, target)); -} - -static int -compare_cname(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - dns_name_t name1; - dns_name_t name2; - isc_region_t region1; - isc_region_t region2; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 5); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_rdata_toregion(rdata1, ®ion1); - dns_rdata_toregion(rdata2, ®ion2); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - return (dns_name_rdatacompare(&name1, &name2)); -} - -static dns_result_t -fromstruct_cname(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 5); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_cname(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 5); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_CNAME_5_H */ diff --git a/lib/dns/rdata/generic/dname_39.h b/lib/dns/rdata/generic/dname_39.h index c3db598e0c..f5ad353d7f 100644 --- a/lib/dns/rdata/generic/dname_39.h +++ b/lib/dns/rdata/generic/dname_39.h @@ -15,137 +15,10 @@ * SOFTWARE. */ - /* $Id: dname_39.h,v 1.4 1999/02/24 06:31:32 marka Exp $ */ + /* $Id: dname_39.h,v 1.5 1999/05/05 01:55:09 marka Exp $ */ /* draft-ietf-dnsind-dname-02.txt */ #ifndef RDATA_GENERIC_DNAME_39_H #define RDATA_GENERIC_DNAME_39_H - -static dns_result_t -fromtext_dname(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - dns_name_t name; - isc_buffer_t buffer; - - REQUIRE(type == 39); - class = class; /*unused*/ - - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - return (dns_name_fromtext(&name, &buffer, origin, downcase, target)); -} - -static dns_result_t -totext_dname(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - dns_name_t name; - dns_name_t prefix; - isc_boolean_t sub; - - REQUIRE(rdata->type == 39); - - dns_name_init(&name, NULL); - dns_name_init(&prefix, NULL); - - dns_rdata_toregion(rdata, ®ion); - dns_name_fromregion(&name, ®ion); - - sub = name_prefix(&name, origin, &prefix); - - return (dns_name_totext(&prefix, sub, target)); -} - -static dns_result_t -fromwire_dname(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - dns_name_t name; - - REQUIRE(type == 39); - class = class; /*unused*/ - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_LOCAL); - - dns_name_init(&name, NULL); - return(dns_name_fromwire(&name, source, dctx, downcase, target)); -} - -static dns_result_t -towire_dname(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - dns_name_t name; - isc_region_t region; - - REQUIRE(rdata->type == 39); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_LOCAL); - - dns_name_init(&name, NULL); - dns_rdata_toregion(rdata, ®ion); - dns_name_fromregion(&name, ®ion); - - return (dns_name_towire(&name, cctx, target)); -} - -static int -compare_dname(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - dns_name_t name1; - dns_name_t name2; - isc_region_t region1; - isc_region_t region2; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 39); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_rdata_toregion(rdata1, ®ion1); - dns_rdata_toregion(rdata2, ®ion2); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - return (dns_name_rdatacompare(&name1, &name2)); -} - -static dns_result_t -fromstruct_dname(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 39); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_dname(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 39); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_DNAME_39_H */ diff --git a/lib/dns/rdata/generic/gpos_27.h b/lib/dns/rdata/generic/gpos_27.h index 5899270214..914917a2e7 100644 --- a/lib/dns/rdata/generic/gpos_27.h +++ b/lib/dns/rdata/generic/gpos_27.h @@ -15,119 +15,10 @@ * SOFTWARE. */ - /* $Id: gpos_27.h,v 1.2 1999/02/16 22:42:24 marka Exp $ */ + /* $Id: gpos_27.h,v 1.3 1999/05/05 01:55:09 marka Exp $ */ /* RFC 1712 */ #ifndef RDATA_GENERIC_GPOS_27_H #define RDATA_GENERIC_GPOS_27_H - -static dns_result_t -fromtext_gpos(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - int i; - - REQUIRE(type == 27); - - class = class; /*unused*/ - origin = origin; /*unused*/ - downcase = downcase; /*unused*/ - - for (i = 0; i < 3 ; i++) { - RETERR(gettoken(lexer, &token, isc_tokentype_qstring, - ISC_FALSE)); - RETERR(txt_fromtext(&token.value.as_textregion, target)); - } - return (DNS_R_SUCCESS); -} - -static dns_result_t -totext_gpos(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - int i; - - REQUIRE(rdata->type == 27); - - origin = origin; /*unused*/ - - dns_rdata_toregion(rdata, ®ion); - - for (i = 0; i < 3 ; i++) { - RETERR(txt_totext(®ion, target)); - if (i != 2) - RETERR(str_totext(" ", target)); - } - - return (DNS_R_SUCCESS); -} - -static dns_result_t -fromwire_gpos(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - int i; - - REQUIRE(type == 27); - - dctx = dctx; /*unused*/ - class = class; /*unused*/ - downcase = downcase; /*unused*/ - - for (i = 0 ; i < 3; i++) - RETERR(txt_fromwire(source, target)); - return (DNS_R_SUCCESS); -} - -static dns_result_t -towire_gpos(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - - REQUIRE(rdata->type == 27); - - cctx = cctx; /*unused*/ - - return (mem_tobuffer(target, rdata->data, rdata->length)); -} - -static int -compare_gpos(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - isc_region_t r1; - isc_region_t r2; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 27); - - dns_rdata_toregion(rdata1, &r1); - dns_rdata_toregion(rdata2, &r2); - return (compare_region(&r1, &r2)); -} - -static dns_result_t -fromstruct_gpos(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 27); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_gpos(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 27); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_GPOS_27_H */ diff --git a/lib/dns/rdata/generic/hinfo_13.h b/lib/dns/rdata/generic/hinfo_13.h index 7c2a4e7e2d..e646babe3b 100644 --- a/lib/dns/rdata/generic/hinfo_13.h +++ b/lib/dns/rdata/generic/hinfo_13.h @@ -15,109 +15,8 @@ * SOFTWARE. */ - /* $Id: hinfo_13.h,v 1.10 1999/02/16 22:51:18 marka Exp $ */ + /* $Id: hinfo_13.h,v 1.11 1999/05/05 01:55:09 marka Exp $ */ #ifndef RDATA_GENERIC_HINFO_13_H #define RDATA_GENERIC_HINFO_13_H - -static dns_result_t -fromtext_hinfo(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - int i; - - REQUIRE(type == 13); - - class = class; /*unused*/ - origin = origin; /*unused*/ - downcase = downcase; /*unused*/ - - for (i = 0; i < 2 ; i++) { - RETERR(gettoken(lexer, &token, isc_tokentype_qstring, - ISC_FALSE)); - RETERR(txt_fromtext(&token.value.as_textregion, target)); - } - return (DNS_R_SUCCESS); -} - -static dns_result_t -totext_hinfo(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - - REQUIRE(rdata->type == 13); - - origin = origin; /*unused*/ - - dns_rdata_toregion(rdata, ®ion); - RETERR(txt_totext(®ion, target)); - RETERR(str_totext(" ", target)); - return (txt_totext(®ion, target)); -} - -static dns_result_t -fromwire_hinfo(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - - REQUIRE(type == 13); - - dctx = dctx; /* unused */ - class = class; /* unused */ - downcase = downcase; /* unused */ - - RETERR(txt_fromwire(source, target)); - return (txt_fromwire(source, target)); -} - -static dns_result_t -towire_hinfo(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - - REQUIRE(rdata->type == 13); - - cctx = cctx; /*unused*/ - - return (mem_tobuffer(target, rdata->data, rdata->length)); -} - -static int -compare_hinfo(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - isc_region_t r1; - isc_region_t r2; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 13); - - dns_rdata_toregion(rdata1, &r1); - dns_rdata_toregion(rdata2, &r2); - return (compare_region(&r1, &r2)); -} - -static dns_result_t -fromstruct_hinfo(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 13); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_hinfo(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 13); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_HINFO_13_H */ diff --git a/lib/dns/rdata/generic/isdn_20.h b/lib/dns/rdata/generic/isdn_20.h index 6b60e42c2f..b03d6a96bf 100644 --- a/lib/dns/rdata/generic/isdn_20.h +++ b/lib/dns/rdata/generic/isdn_20.h @@ -21,113 +21,4 @@ #ifndef RDATA_GENERIC_ISDN_20_H #define RDATA_GENERIC_ISDN_20_H - -static dns_result_t -fromtext_isdn(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - - REQUIRE(type == 20); - - class = class; /*unused*/ - origin = origin; /*unused*/ - downcase = downcase; /*unused*/ - - /* ISDN-address */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - RETERR(txt_fromtext(&token.value.as_textregion, target)); - - /* sa: optional */ - RETERR(gettoken(lexer, &token, isc_tokentype_qstring, ISC_TRUE)); - if (token.type != isc_tokentype_string) { - isc_lex_ungettoken(lexer, &token); - return (DNS_R_SUCCESS); - } - return (txt_fromtext(&token.value.as_textregion, target)); -} - -static dns_result_t -totext_isdn(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - - REQUIRE(rdata->type == 20); - - origin = origin; /*unused*/ - - dns_rdata_toregion(rdata, ®ion); - RETERR(txt_totext(®ion, target)); - if (region.length == 0) - return (DNS_R_SUCCESS); - RETERR(str_totext(" ", target)); - return (txt_totext(®ion, target)); -} - -static dns_result_t -fromwire_isdn(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - - REQUIRE(type == 20); - - dctx = dctx; /* unused */ - class = class; /* unused */ - downcase = downcase; /* unused */ - - RETERR(txt_fromwire(source, target)); - if (buffer_empty(source)) - return (DNS_R_SUCCESS); - return (txt_fromwire(source, target)); -} - -static dns_result_t -towire_isdn(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - - REQUIRE(rdata->type == 20); - - cctx = cctx; /*unused*/ - - return (mem_tobuffer(target, rdata->data, rdata->length)); -} - -static int -compare_isdn(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - isc_region_t r1; - isc_region_t r2; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 20); - - dns_rdata_toregion(rdata1, &r1); - dns_rdata_toregion(rdata2, &r2); - return (compare_region(&r1, &r2)); -} - -static dns_result_t -fromstruct_isdn(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 20); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_isdn(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 20); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_ISDN_20_H */ diff --git a/lib/dns/rdata/generic/key_25.h b/lib/dns/rdata/generic/key_25.h index 1faccee7a2..8b94cf8c5e 100644 --- a/lib/dns/rdata/generic/key_25.h +++ b/lib/dns/rdata/generic/key_25.h @@ -15,161 +15,10 @@ * SOFTWARE. */ - /* $Id: key_25.h,v 1.3 1999/02/16 22:42:25 marka Exp $ */ + /* $Id: key_25.h,v 1.4 1999/05/05 01:55:09 marka Exp $ */ /* RFC 2065 */ #ifndef RDATA_GENERIC_KEY_25_H #define RDATA_GENERIC_KEY_25_H - -static dns_result_t -fromtext_key(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - unsigned char c; - unsigned int flags; - - REQUIRE(type == 25); - - class = class; /*unused*/ - origin = origin; /*unused*/ - downcase = downcase; /*unused*/ - - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - if (token.value.as_ulong > 0xffff) - return (DNS_R_RANGE); - RETERR(uint16_tobuffer(token.value.as_ulong, target)); - flags = token.value.as_ulong; - - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - if (token.value.as_ulong > 0xff) - return (DNS_R_RANGE); - c = token.value.as_ulong; - RETERR(mem_tobuffer(target, &c, 1)); - - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - if (token.value.as_ulong > 0xff) - return (DNS_R_RANGE); - c = token.value.as_ulong; - RETERR(mem_tobuffer(target, &c, 1)); - - /* No Key? */ - if ((flags & 0xc000) == 0xc000) - return (DNS_R_SUCCESS); - - return (base64_tobuffer(lexer, target, -1)); -} - -static dns_result_t -totext_key(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t sr; - char buf[sizeof "64000"]; - unsigned int flags; - - REQUIRE(rdata->type == 25); - - origin = origin; /*unused*/ - - dns_rdata_toregion(rdata, &sr); - - /* flags */ - flags = uint16_fromregion(&sr); - isc_region_consume(&sr, 2); - sprintf(buf, "%u", flags); - RETERR(str_totext(buf, target)); - RETERR(str_totext(" ", target)); - - /* protocol */ - sprintf(buf, "%u", sr.base[0]); - isc_region_consume(&sr, 1); - RETERR(str_totext(buf, target)); - RETERR(str_totext(" ", target)); - - /* algorithm */ - sprintf(buf, "%u", sr.base[0]); - isc_region_consume(&sr, 1); - RETERR(str_totext(buf, target)); - - /* No Key? */ - if ((flags & 0xc000) == 0xc00) - return (DNS_R_SUCCESS); - - /* key */ - RETERR(str_totext(" ", target)); - return (base64_totext(&sr, target)); -} - -static dns_result_t -fromwire_key(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_region_t sr; - - REQUIRE(type == 25); - - class = class; /*unused*/ - dctx = dctx; /*unused*/ - downcase = downcase; /*unused*/ - - isc_buffer_active(source, &sr); - if (sr.length < 4) - return (DNS_R_UNEXPECTEDEND); - - isc_buffer_forward(source, sr.length); - return (mem_tobuffer(target, sr.base, sr.length)); -} - -static dns_result_t -towire_key(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - isc_region_t sr; - - REQUIRE(rdata->type == 25); - - cctx = cctx; /*unused*/ - - dns_rdata_toregion(rdata, &sr); - return (mem_tobuffer(target, sr.base, sr.length)); -} - -static int -compare_key(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - isc_region_t r1; - isc_region_t r2; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 25); - - dns_rdata_toregion(rdata1, &r1); - dns_rdata_toregion(rdata2, &r2); - return (compare_region(&r1, &r2)); -} - -static dns_result_t -fromstruct_key(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 25); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_key(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 25); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_KEY_25_H */ diff --git a/lib/dns/rdata/generic/loc_29.h b/lib/dns/rdata/generic/loc_29.h index 16372fc4a3..d3f10e32c3 100644 --- a/lib/dns/rdata/generic/loc_29.h +++ b/lib/dns/rdata/generic/loc_29.h @@ -15,573 +15,10 @@ * SOFTWARE. */ - /* $Id: loc_29.h,v 1.2 1999/02/11 14:00:29 marka Exp $ */ + /* $Id: loc_29.h,v 1.3 1999/05/05 01:55:09 marka Exp $ */ /* RFC 1876 */ #ifndef RDATA_GENERIC_LOC_29_H #define RDATA_GENERIC_LOC_29_H - -static dns_result_t -fromtext_loc(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - int d1, m1, s1; - int d2, m2, s2; - unsigned char size; - unsigned char hp; - unsigned char vp; - unsigned char version; - isc_boolean_t east = ISC_FALSE; - isc_boolean_t north = ISC_FALSE; - long tmp; - long m; - long cm; - long poweroften[8] = { 1, 10, 100, 1000, - 10000, 100000, 1000000, 10000000 }; - int man; - int exp; - char *e; - int i; - unsigned long latitude; - unsigned long longitude; - unsigned long altitude; - - REQUIRE(type == 29); - - class = class; /*unused*/ - origin = origin; /*unused*/ - downcase = downcase; /*unused*/ - - /* defaults */ - m1 = s1 = 0; - m2 = s2 = 0; - size = 0x12; /* 1.00m */ - hp = 0x16; /* 10000.00 m */ - vp = 0x13; /* 10.00 m */ - version = 0; - - /* degree */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - if (token.value.as_ulong > 90) - return (DNS_R_RANGE); - d1 = token.value.as_ulong; - /* minute */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - if (strcasecmp(token.value.as_pointer, "N") == 0) - north = ISC_TRUE; - if (north || strcasecmp(token.value.as_pointer, "S") == 0) - goto getlong; - m1 = strtol(token.value.as_pointer, &e, 10); - if (*e != 0) - return (DNS_R_SYNTAX); - if (m1 < 0 || m1 > 59) - return (DNS_R_RANGE); - if (d1 == 90 && m1 != 0) - return (DNS_R_RANGE); - - /* second */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - if (strcasecmp(token.value.as_pointer, "N") == 0) - north = ISC_TRUE; - if (north || strcasecmp(token.value.as_pointer, "S") == 0) - goto getlong; - s1 = strtol(token.value.as_pointer, &e, 10); - if (*e != 0 && *e != '.') - return (DNS_R_SYNTAX); - if (s1 < 0 || s1 > 59) - return (DNS_R_RANGE); - if (*e == '.') { - e++; - for (i = 0; i < 3 ; i++) { - if (*e == 0) - break; - if ((tmp = decvalue(*e++)) < 0) - return (DNS_R_SYNTAX); - s1 *= 10; - s1 += tmp; - } - for ( ; i < 3 ; i++) - s1 *= 10; - if (*e != 0) - return (DNS_R_SYNTAX); - } else - s1 *= 1000; - if (d1 == 90 && s1 != 0) - return (DNS_R_RANGE); - - /* direction */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - if (strcasecmp(token.value.as_pointer, "N") == 0) - north = ISC_TRUE; - if (!north && strcasecmp(token.value.as_pointer, "S") != 0) - return (DNS_R_SYNTAX); - - getlong: - /* degree */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - if (token.value.as_ulong > 180) - return (DNS_R_RANGE); - d2 = token.value.as_ulong; - - /* minute */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - if (strcasecmp(token.value.as_pointer, "E") == 0) - east = ISC_TRUE; - if (east || strcasecmp(token.value.as_pointer, "W") == 0) - goto getalt; - m2 = strtol(token.value.as_pointer, &e, 10); - if (*e != 0) - return (DNS_R_SYNTAX); - if (m2 < 0 || m2 > 59) - return (DNS_R_RANGE); - if (d2 == 180 && m2 != 0) - return (DNS_R_RANGE); - - /* second */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - if (strcasecmp(token.value.as_pointer, "E") == 0) - east = ISC_TRUE; - if (east || strcasecmp(token.value.as_pointer, "W") == 0) - goto getalt; - s2 = strtol(token.value.as_pointer, &e, 10); - if (*e != 0 && *e != '.') - return (DNS_R_SYNTAX); - if (s2 < 0 || s2 > 59) - return (DNS_R_RANGE); - if (*e == '.') { - e++; - for (i = 0; i < 3 ; i++) { - if (*e == 0) - break; - if ((tmp = decvalue(*e++)) < 0) - return (DNS_R_SYNTAX); - s2 *= 10; - s2 += tmp; - } - for ( ; i < 3 ; i++) - s2 *= 10; - if (*e != 0) - return (DNS_R_SYNTAX); - } else - s2 *= 1000; - if (d2 == 180 && s2 != 0) - return (DNS_R_RANGE); - - /* direction */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - if (strcasecmp(token.value.as_pointer, "E") == 0) - east = ISC_TRUE; - if (!east && strcasecmp(token.value.as_pointer, "W") != 0) - return (DNS_R_SYNTAX); - - getalt: - /* alt */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - m = strtol(token.value.as_pointer, &e, 10); - if (*e != 0 && *e != '.' && *e != 'm') - return (DNS_R_SYNTAX); - if (m < -100000 || m > 42849672) - return (DNS_R_RANGE); - cm = 0; - if (*e == '.') { - e++; - for (i = 0; i < 2 ; i++) { - if (*e == 0 || *e == 'm') - break; - if ((tmp = decvalue(*e++)) < 0) - return (DNS_R_SYNTAX); - cm *= 10; - if (m < 0) - cm -= tmp; - else - cm += tmp; - } - for ( ; i < 2 ; i++) - cm *= 10; - } - if (*e == 'm') - e++; - if (*e != 0) - return (DNS_R_SYNTAX); - if (m == -100000 && cm != 0) - return (DNS_R_RANGE); - if (m == 42849672 && cm > 95) - return (DNS_R_RANGE); - /* adjust base */ - altitude = m + 100000; - altitude *= 100; - altitude += cm; - - /* size: optional */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_TRUE)); - if (token.type == isc_tokentype_eol || - token.type == isc_tokentype_eof) { - isc_lex_ungettoken(lexer, &token); - goto encode; - } - m = strtol(token.value.as_pointer, &e, 10); - if (*e != 0 && *e != '.' && *e != 'm') - return (DNS_R_SYNTAX); - if (m < 0 || m > 90000000) - return (DNS_R_RANGE); - cm = 0; - if (*e == '.') { - e++; - for (i = 0; i < 2 ; i++) { - if (*e == 0 || *e == 'm') - break; - if ((tmp = decvalue(*e++)) < 0) - return (DNS_R_SYNTAX); - cm *= 10; - cm += tmp; - } - for ( ; i < 2 ; i++) - cm *= 10; - } - if (*e == 'm') - e++; - if (*e != 0) - return (DNS_R_SYNTAX); - /* we don't just multiply out as we will overflow */ - if (m > 0) { - for (exp = 0 ; exp < 7 ; exp++) - if (m < poweroften[exp+1]) - break; - man = m / poweroften[exp]; - exp += 2; - } else { - if (cm > 10) { - man = cm / 10; - exp = 1; - } else { - man = cm; - exp = 0; - } - } - size = (man << 4) + exp; - - /* hp: optional */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_TRUE)); - if (token.type == isc_tokentype_eol || - token.type == isc_tokentype_eof) { - isc_lex_ungettoken(lexer, &token); - goto encode; - } - m = strtol(token.value.as_pointer, &e, 10); - if (*e != 0 && *e != '.' && *e != 'm') - return (DNS_R_SYNTAX); - if (m < 0 || m > 90000000) - return (DNS_R_RANGE); - cm = 0; - if (*e == '.') { - e++; - for (i = 0; i < 2 ; i++) { - if (*e == 0 || *e == 'm') - break; - if ((tmp = decvalue(*e++)) < 0) - return (DNS_R_SYNTAX); - cm *= 10; - cm += tmp; - } - for ( ; i < 2 ; i++) - cm *= 10; - } - if (*e == 'm') - e++; - if (*e != 0) - return (DNS_R_SYNTAX); - /* we don't just multiply out as we will overflow */ - if (m > 0) { - for (exp = 0 ; exp < 7 ; exp++) - if (m < poweroften[exp+1]) - break; - man = m / poweroften[exp]; - exp += 2; - } else if (cm > 10) { - man = cm / 10; - exp = 1; - } else { - man = cm; - exp = 0; - } - hp = (man << 4) + exp; - - /* vp: optional */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_TRUE)); - if (token.type == isc_tokentype_eol || - token.type == isc_tokentype_eof) { - isc_lex_ungettoken(lexer, &token); - goto encode; - } - m = strtol(token.value.as_pointer, &e, 10); - if (*e != 0 && *e != '.' && *e != 'm') - return (DNS_R_SYNTAX); - if (m < 0 || m > 90000000) - return (DNS_R_RANGE); - cm = 0; - if (*e == '.') { - e++; - for (i = 0; i < 2 ; i++) { - if (*e == 0 || *e == 'm') - break; - if ((tmp = decvalue(*e++)) < 0) - return (DNS_R_SYNTAX); - cm *= 10; - cm += tmp; - } - for ( ; i < 2 ; i++) - cm *= 10; - } - if (*e == 'm') - e++; - if (*e != 0) - return (DNS_R_SYNTAX); - /* we don't just multiply out as we will overflow */ - if (m > 0) { - for (exp = 0 ; exp < 7 ; exp++) - if (m < poweroften[exp+1]) - break; - man = m / poweroften[exp]; - exp += 2; - } else if (cm > 10) { - man = cm / 10; - exp = 1; - } else { - man = cm; - exp = 0; - } - vp = (man << 4) + exp; - - encode: - RETERR(mem_tobuffer(target, &version, 1)); - RETERR(mem_tobuffer(target, &size, 1)); - RETERR(mem_tobuffer(target, &hp, 1)); - RETERR(mem_tobuffer(target, &vp, 1)); - if (north) - latitude = 0x80000000 + ( d1 * 3600 + m1 * 60 ) * 1000 + s1; - else - latitude = 0x80000000 - ( d1 * 3600 + m1 * 60 ) * 1000 - s1; - RETERR(uint32_tobuffer(latitude, target)); - - if (east) - longitude = 0x80000000 + ( d2 * 3600 + m2 * 60 ) * 1000 + s2; - else - longitude = 0x80000000 - ( d2 * 3600 + m2 * 60 ) * 1000 - s2; - RETERR(uint32_tobuffer(longitude, target)); - - return (uint32_tobuffer(altitude, target)); -} - -static dns_result_t -totext_loc(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - int d1, m1, s1, fs1; - int d2, m2, s2, fs2; - unsigned long latitude; - unsigned long longitude; - unsigned long altitude; - isc_boolean_t north; - isc_boolean_t east; - isc_boolean_t below; - isc_region_t sr; - char buf[sizeof - "89 59 59.999 N 179 59 59.999 E 42849672.95m 90000000m 90000000m 90000000m"]; - char sbuf[sizeof "90000000m"]; - char hbuf[sizeof "90000000m"]; - char vbuf[sizeof "90000000m"]; - unsigned char size, hp, vp; - unsigned long poweroften[8] = { 1, 10, 100, 1000, - 10000, 100000, 1000000, 10000000 }; - - REQUIRE(rdata->type == 29); - - origin = origin; /*unused*/ - - dns_rdata_toregion(rdata, &sr); - - /* version = sr.base[0]; */ - size = sr.base[1]; - if ((size&0x0f)> 1) - sprintf(sbuf, "%lum", (size>>4) * poweroften[(size&0x0f)-2]); - else - sprintf(sbuf, "0.%02lum", (size>>4) * poweroften[(size&0x0f)]); - hp = sr.base[2]; - if ((hp&0x0f)> 1) - sprintf(hbuf, "%lum", (hp>>4) * poweroften[(hp&0x0f)-2]); - else - sprintf(hbuf, "0.%02lum", (hp>>4) * poweroften[(hp&0x0f)]); - vp = sr.base[3]; - if ((vp&0x0f)> 1) - sprintf(vbuf, "%lum", (vp>>4) * poweroften[(vp&0x0f)-2]); - else - sprintf(vbuf, "0.%02lum", (vp>>4) * poweroften[(vp&0x0f)]); - isc_region_consume(&sr, 4); - - latitude = uint32_fromregion(&sr); - isc_region_consume(&sr, 4); - if (latitude >= 0x80000000) { - north = ISC_TRUE; - latitude -= 0x80000000; - } else { - north = ISC_FALSE; - latitude = 0x80000000 - latitude; - } - fs1 = latitude % 1000; - latitude /= 1000; - s1 = latitude % 60; - latitude /= 60; - m1 = latitude % 60; - latitude /= 60; - d1 = latitude; - - longitude = uint32_fromregion(&sr); - isc_region_consume(&sr, 4); - if (longitude >= 0x80000000) { - east = ISC_TRUE; - longitude -= 0x80000000; - } else { - east = ISC_FALSE; - longitude = 0x80000000 - longitude; - } - fs2 = longitude % 1000; - longitude /= 1000; - s2 = longitude % 60; - longitude /= 60; - m2 = longitude % 60; - longitude /= 60; - d2 = longitude; - - altitude = uint32_fromregion(&sr); - isc_region_consume(&sr, 4); - if (altitude < 10000000) { - below = ISC_TRUE; - altitude = 10000000 - altitude; - } else { - below =ISC_FALSE; - altitude -= 10000000; - } - - sprintf(buf, "%d %d %d.%03d %s %d %d %d.%03d %s %s%ld.%02ldm %s %s %s", - d1, m1, s1, fs1, north ? "N" : "S", - d2, m2, s2, fs2, east ? "E" : "W", - below ? "-" : "", altitude/100, altitude % 100, - sbuf, hbuf, vbuf); - - return (str_totext(buf, target)); -} - -static dns_result_t -fromwire_loc(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_region_t sr; - unsigned char c; - unsigned long latitude; - unsigned long longitude; - - REQUIRE(type == 29); - - class = class; /*unused*/ - dctx = dctx; /*unused*/ - downcase = downcase; /*unused*/ - - isc_buffer_active(source, &sr); - if (sr.length < 1) - return (DNS_R_UNEXPECTEDEND); - if (sr.base[0] != 0) - return (DNS_R_NOTIMPLEMENTED); - if (sr.length < 16) - return (DNS_R_UNEXPECTEDEND); - - /* size */ - c = sr.base[1]; - if (c != 0) - if ((c&0xf) > 9 || ((c>>4)&0xf) > 9 || ((c>>4)&0xf) == 0) - return (DNS_R_RANGE); - - /* horiz pre */ - c = sr.base[2]; - if (c != 0) - if ((c&0xf) > 9 || ((c>>4)&0xf) > 9 || ((c>>4)&0xf) == 0) - return (DNS_R_RANGE); - - /* vert pre */ - c = sr.base[3]; - if (c != 0) - if ((c&0xf) > 9 || ((c>>4)&0xf) > 9 || ((c>>4)&0xf) == 0) - return (DNS_R_RANGE); - isc_region_consume(&sr, 4); - - /* latitude */ - latitude = uint32_fromregion(&sr); - if (latitude < (0x80000000UL - 90 * 3600000) || - latitude > (0x80000000UL + 90 * 3600000)) - return (DNS_R_RANGE); - isc_region_consume(&sr, 4); - - /* longitude */ - longitude = uint32_fromregion(&sr); - if (longitude < (0x80000000UL - 180 * 3600000) || - longitude > (0x80000000UL + 180 * 3600000)) - return (DNS_R_RANGE); - - /* altitiude */ - /* all values possible */ - - isc_buffer_active(source, &sr); - isc_buffer_forward(source, 16); - return (mem_tobuffer(target, sr.base, 16)); -} - -static dns_result_t -towire_loc(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - - REQUIRE(rdata->type == 29); - - cctx = cctx; /*unused*/ - - return(mem_tobuffer(target, rdata->data, rdata->length)); -} - -static int -compare_loc(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - isc_region_t r1; - isc_region_t r2; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 29); - - dns_rdata_toregion(rdata1, &r1); - dns_rdata_toregion(rdata2, &r2); - return (compare_region(&r1, &r2)); -} - -static dns_result_t -fromstruct_loc(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 29); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_loc(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 29); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_LOC_29_H */ diff --git a/lib/dns/rdata/generic/mb_7.h b/lib/dns/rdata/generic/mb_7.h index 9a30363ee2..2e997c5bb2 100644 --- a/lib/dns/rdata/generic/mb_7.h +++ b/lib/dns/rdata/generic/mb_7.h @@ -15,137 +15,8 @@ * SOFTWARE. */ - /* $Id: mb_7.h,v 1.11 1999/02/24 06:31:32 marka Exp $ */ + /* $Id: mb_7.h,v 1.12 1999/05/05 01:55:09 marka Exp $ */ #ifndef RDATA_GENERIC_MB_7_H #define RDATA_GENERIC_MB_7_H - -static dns_result_t -fromtext_mb(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - dns_name_t name; - isc_buffer_t buffer; - - REQUIRE(type == 7); - - class = class; /*unused*/ - - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - return (dns_name_fromtext(&name, &buffer, origin, downcase, target)); -} - -static dns_result_t -totext_mb(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - dns_name_t name; - dns_name_t prefix; - isc_boolean_t sub; - - REQUIRE(rdata->type == 7); - - dns_name_init(&name, NULL); - dns_name_init(&prefix, NULL); - - dns_rdata_toregion(rdata, ®ion); - dns_name_fromregion(&name, ®ion); - - sub = name_prefix(&name, origin, &prefix); - - return (dns_name_totext(&prefix, sub, target)); -} - -static dns_result_t -fromwire_mb(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - dns_name_t name; - - REQUIRE(type == 7); - - class = class; /*unused*/ - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_GLOBAL14); - - dns_name_init(&name, NULL); - return (dns_name_fromwire(&name, source, dctx, downcase, target)); -} - -static dns_result_t -towire_mb(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - dns_name_t name; - isc_region_t region; - - REQUIRE(rdata->type == 7); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_GLOBAL14); - - dns_name_init(&name, NULL); - dns_rdata_toregion(rdata, ®ion); - dns_name_fromregion(&name, ®ion); - - return (dns_name_towire(&name, cctx, target)); -} - -static int -compare_mb(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - dns_name_t name1; - dns_name_t name2; - isc_region_t region1; - isc_region_t region2; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 7); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_rdata_toregion(rdata1, ®ion1); - dns_rdata_toregion(rdata2, ®ion2); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - return (dns_name_rdatacompare(&name1, &name2)); -} - -static dns_result_t -fromstruct_mb(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 7); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_mb(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 7); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_MB_7_H */ diff --git a/lib/dns/rdata/generic/md_3.h b/lib/dns/rdata/generic/md_3.h index 154bf5429b..61582f60ae 100644 --- a/lib/dns/rdata/generic/md_3.h +++ b/lib/dns/rdata/generic/md_3.h @@ -15,135 +15,8 @@ * SOFTWARE. */ - /* $Id: md_3.h,v 1.11 1999/02/24 06:31:32 marka Exp $ */ + /* $Id: md_3.h,v 1.12 1999/05/05 01:55:09 marka Exp $ */ #ifndef RDATA_GENERIC_MD_3_H #define RDATA_GENERIC_MD_3_H - -static dns_result_t -fromtext_md(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - dns_name_t name; - isc_buffer_t buffer; - - REQUIRE(type == 3); - - class = class; /*unused*/ - - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - return (dns_name_fromtext(&name, &buffer, origin, downcase, target)); -} - -static dns_result_t -totext_md(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - dns_name_t name; - dns_name_t prefix; - isc_boolean_t sub; - - REQUIRE(rdata->type == 3); - - dns_name_init(&name, NULL); - dns_rdata_toregion(rdata, ®ion); - dns_name_fromregion(&name, ®ion); - - sub = name_prefix(&name, origin, &prefix); - - return(dns_name_totext(&prefix, sub, target)); -} - -static dns_result_t -fromwire_md(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - dns_name_t name; - - REQUIRE(type == 3); - - class = class; /*unused*/ - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_GLOBAL14); - - dns_name_init(&name, NULL); - return (dns_name_fromwire(&name, source, dctx, downcase, target)); -} - -static dns_result_t -towire_md(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - dns_name_t name; - isc_region_t region; - - REQUIRE(rdata->type == 3); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_GLOBAL14); - - dns_name_init(&name, NULL); - dns_rdata_toregion(rdata, ®ion); - dns_name_fromregion(&name, ®ion); - - return (dns_name_towire(&name, cctx, target)); -} - -static int -compare_md(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - dns_name_t name1; - dns_name_t name2; - isc_region_t region1; - isc_region_t region2; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 3); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_rdata_toregion(rdata1, ®ion1); - dns_rdata_toregion(rdata2, ®ion2); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - return (dns_name_rdatacompare(&name1, &name2)); -} - -static dns_result_t -fromstruct_md(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 3); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_md(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 3); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_MD_3_H */ diff --git a/lib/dns/rdata/generic/mf_4.h b/lib/dns/rdata/generic/mf_4.h index a9bf8923c9..fe21650193 100644 --- a/lib/dns/rdata/generic/mf_4.h +++ b/lib/dns/rdata/generic/mf_4.h @@ -15,135 +15,8 @@ * SOFTWARE. */ - /* $Id: mf_4.h,v 1.10 1999/02/24 06:31:33 marka Exp $ */ + /* $Id: mf_4.h,v 1.11 1999/05/05 01:55:10 marka Exp $ */ #ifndef RDATA_GENERIC_MF_4_H #define RDATA_GENERIC_MF_4_H - -static dns_result_t -fromtext_mf(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - dns_name_t name; - isc_buffer_t buffer; - - REQUIRE(type == 4); - - class = class; /*unused*/ - - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - return (dns_name_fromtext(&name, &buffer, origin, downcase, target)); -} - -static dns_result_t -totext_mf(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - dns_name_t name; - dns_name_t prefix; - isc_boolean_t sub; - - REQUIRE(rdata->type == 4); - - dns_name_init(&name, NULL); - dns_rdata_toregion(rdata, ®ion); - dns_name_fromregion(&name, ®ion); - - sub = name_prefix(&name, origin, &prefix); - - return (dns_name_totext(&prefix, sub, target)); -} - -static dns_result_t -fromwire_mf(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - dns_name_t name; - - REQUIRE(type == 4); - - class = class; /*unused*/ - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_GLOBAL14); - - dns_name_init(&name, NULL); - return (dns_name_fromwire(&name, source, dctx, downcase, target)); -} - -static dns_result_t -towire_mf(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - dns_name_t name; - isc_region_t region; - - REQUIRE(rdata->type == 4); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_GLOBAL14); - - dns_name_init(&name, NULL); - dns_rdata_toregion(rdata, ®ion); - dns_name_fromregion(&name, ®ion); - - return (dns_name_towire(&name, cctx, target)); -} - -static int -compare_mf(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - dns_name_t name1; - dns_name_t name2; - isc_region_t region1; - isc_region_t region2; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 4); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_rdata_toregion(rdata1, ®ion1); - dns_rdata_toregion(rdata2, ®ion2); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - return (dns_name_rdatacompare(&name1, &name2)); -} - -static dns_result_t -fromstruct_mf(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 4); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_mf(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 4); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_MF_4_H */ diff --git a/lib/dns/rdata/generic/mg_8.h b/lib/dns/rdata/generic/mg_8.h index d2bf0ec951..6eff480fc6 100644 --- a/lib/dns/rdata/generic/mg_8.h +++ b/lib/dns/rdata/generic/mg_8.h @@ -15,137 +15,8 @@ * SOFTWARE. */ - /* $Id: mg_8.h,v 1.10 1999/02/24 06:31:33 marka Exp $ */ + /* $Id: mg_8.h,v 1.11 1999/05/05 01:55:10 marka Exp $ */ #ifndef RDATA_GENERIC_MG_8_H #define RDATA_GENERIC_MG_8_H - -static dns_result_t -fromtext_mg(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - dns_name_t name; - isc_buffer_t buffer; - - REQUIRE(type == 8); - - class = class; /*unused*/ - - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - return (dns_name_fromtext(&name, &buffer, origin, downcase, target)); -} - -static dns_result_t -totext_mg(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - dns_name_t name; - dns_name_t prefix; - isc_boolean_t sub; - - REQUIRE(rdata->type == 8); - - dns_name_init(&name, NULL); - dns_name_init(&prefix, NULL); - - dns_rdata_toregion(rdata, ®ion); - dns_name_fromregion(&name, ®ion); - - sub = name_prefix(&name, origin, &prefix); - - return (dns_name_totext(&prefix, sub, target)); -} - -static dns_result_t -fromwire_mg(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - dns_name_t name; - - REQUIRE(type == 8); - - class = class; /*unused*/ - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_GLOBAL14); - - dns_name_init(&name, NULL); - return (dns_name_fromwire(&name, source, dctx, downcase, target)); -} - -static dns_result_t -towire_mg(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - dns_name_t name; - isc_region_t region; - - REQUIRE(rdata->type == 8); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_GLOBAL14); - - dns_name_init(&name, NULL); - dns_rdata_toregion(rdata, ®ion); - dns_name_fromregion(&name, ®ion); - - return (dns_name_towire(&name, cctx, target)); -} - -static int -compare_mg(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - dns_name_t name1; - dns_name_t name2; - isc_region_t region1; - isc_region_t region2; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 8); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_rdata_toregion(rdata1, ®ion1); - dns_rdata_toregion(rdata2, ®ion2); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - return (dns_name_rdatacompare(&name1, &name2)); -} - -static dns_result_t -fromstruct_mg(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 8); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_mg(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 8); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_MG_8_H */ diff --git a/lib/dns/rdata/generic/minfo_14.h b/lib/dns/rdata/generic/minfo_14.h index ec4849df03..2091a10ab7 100644 --- a/lib/dns/rdata/generic/minfo_14.h +++ b/lib/dns/rdata/generic/minfo_14.h @@ -15,183 +15,8 @@ * SOFTWARE. */ - /* $Id: minfo_14.h,v 1.11 1999/02/24 06:31:33 marka Exp $ */ + /* $Id: minfo_14.h,v 1.12 1999/05/05 01:55:10 marka Exp $ */ #ifndef RDATA_GENERIC_MINFO_14_H #define RDATA_GENERIC_MINFO_14_H - -static dns_result_t -fromtext_minfo(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - dns_name_t name; - isc_buffer_t buffer; - int i; - - REQUIRE(type == 14); - - class = class; /*unused*/ - - for (i = 0; i < 2 ; i++) { - RETERR(gettoken(lexer, &token, isc_tokentype_string, - ISC_FALSE)); - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - RETERR(dns_name_fromtext(&name, &buffer, origin, - downcase, target)); - } - return (DNS_R_SUCCESS); -} - -static dns_result_t -totext_minfo(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - dns_name_t rmail; - dns_name_t email; - dns_name_t prefix; - isc_boolean_t sub; - - REQUIRE(rdata->type == 14); - - dns_name_init(&rmail, NULL); - dns_name_init(&email, NULL); - dns_name_init(&prefix, NULL); - - dns_rdata_toregion(rdata, ®ion); - - dns_name_fromregion(&rmail, ®ion); - isc_region_consume(®ion, rmail.length); - - dns_name_fromregion(&email, ®ion); - isc_region_consume(®ion, email.length); - - sub = name_prefix(&rmail, origin, &prefix); - - RETERR(dns_name_totext(&prefix, sub, target)); - - RETERR(str_totext(" ", target)); - - sub = name_prefix(&email, origin, &prefix); - return (dns_name_totext(&prefix, sub, target)); -} - -static dns_result_t -fromwire_minfo(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - dns_name_t rmail; - dns_name_t email; - - REQUIRE(type == 14); - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_GLOBAL14); - - class = class; /*unused*/ - - dns_name_init(&rmail, NULL); - dns_name_init(&email, NULL); - - RETERR(dns_name_fromwire(&rmail, source, dctx, downcase, target)); - return (dns_name_fromwire(&email, source, dctx, downcase, target)); -} - -static dns_result_t -towire_minfo(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - isc_region_t region; - dns_name_t rmail; - dns_name_t email; - - REQUIRE(rdata->type == 14); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_GLOBAL14); - - dns_name_init(&rmail, NULL); - dns_name_init(&email, NULL); - - dns_rdata_toregion(rdata, ®ion); - - dns_name_fromregion(&rmail, ®ion); - isc_region_consume(®ion, name_length(&rmail)); - - RETERR(dns_name_towire(&rmail, cctx, target)); - - dns_name_fromregion(&rmail, ®ion); - isc_region_consume(®ion, rmail.length); - - return (dns_name_towire(&rmail, cctx, target)); -} - -static int -compare_minfo(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - isc_region_t region1; - isc_region_t region2; - dns_name_t name1; - dns_name_t name2; - int result; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 14); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_rdata_toregion(rdata1, ®ion1); - dns_rdata_toregion(rdata2, ®ion2); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - result = dns_name_rdatacompare(&name1, &name2); - if (result != 0) - return (result); - - isc_region_consume(®ion1, name_length(&name1)); - isc_region_consume(®ion2, name_length(&name2)); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - result = dns_name_rdatacompare(&name1, &name2); - return (result); -} - -static dns_result_t -fromstruct_minfo(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 14); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_minfo(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 14); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_MINFO_14_H */ diff --git a/lib/dns/rdata/generic/mr_9.h b/lib/dns/rdata/generic/mr_9.h index c7d8efdf21..79297130b9 100644 --- a/lib/dns/rdata/generic/mr_9.h +++ b/lib/dns/rdata/generic/mr_9.h @@ -15,137 +15,8 @@ * SOFTWARE. */ - /* $Id: mr_9.h,v 1.10 1999/02/24 06:31:33 marka Exp $ */ + /* $Id: mr_9.h,v 1.11 1999/05/05 01:55:10 marka Exp $ */ #ifndef RDATA_GENERIC_MR_9_H #define RDATA_GENERIC_MR_9_H - -static dns_result_t -fromtext_mr(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - dns_name_t name; - isc_buffer_t buffer; - - REQUIRE(type == 9); - - class = class; /*unused*/ - - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - return (dns_name_fromtext(&name, &buffer, origin, downcase, target)); -} - -static dns_result_t -totext_mr(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - dns_name_t name; - dns_name_t prefix; - isc_boolean_t sub; - - REQUIRE(rdata->type == 9); - - dns_name_init(&name, NULL); - dns_name_init(&prefix, NULL); - - dns_rdata_toregion(rdata, ®ion); - dns_name_fromregion(&name, ®ion); - - sub = name_prefix(&name, origin, &prefix); - - return (dns_name_totext(&prefix, sub, target)); -} - -static dns_result_t -fromwire_mr(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - dns_name_t name; - - REQUIRE(type == 9); - - class = class; /*unused*/ - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_GLOBAL14); - - dns_name_init(&name, NULL); - return (dns_name_fromwire(&name, source, dctx, downcase, target)); -} - -static dns_result_t -towire_mr(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - dns_name_t name; - isc_region_t region; - - REQUIRE(rdata->type == 9); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_GLOBAL14); - - dns_name_init(&name, NULL); - dns_rdata_toregion(rdata, ®ion); - dns_name_fromregion(&name, ®ion); - - return (dns_name_towire(&name, cctx, target)); -} - -static int -compare_mr(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - dns_name_t name1; - dns_name_t name2; - isc_region_t region1; - isc_region_t region2; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 9); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_rdata_toregion(rdata1, ®ion1); - dns_rdata_toregion(rdata2, ®ion2); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - return (dns_name_rdatacompare(&name1, &name2)); -} - -static dns_result_t -fromstruct_mr(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 9); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_mr(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 9); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_MR_9_H */ diff --git a/lib/dns/rdata/generic/mx_15.h b/lib/dns/rdata/generic/mx_15.h index 1c6081c2de..c4842a50fa 100644 --- a/lib/dns/rdata/generic/mx_15.h +++ b/lib/dns/rdata/generic/mx_15.h @@ -15,174 +15,8 @@ * SOFTWARE. */ - /* $Id: mx_15.h,v 1.13 1999/02/24 06:31:33 marka Exp $ */ + /* $Id: mx_15.h,v 1.14 1999/05/05 01:55:10 marka Exp $ */ #ifndef RDATA_GENERIC_MX_15_H #define RDATA_GENERIC_MX_15_H - -static dns_result_t -fromtext_mx(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - dns_name_t name; - isc_buffer_t buffer; - - REQUIRE(type == 15); - - class = class; /*unused*/ - - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - - RETERR(uint16_tobuffer(token.value.as_ulong, target)); - - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - return (dns_name_fromtext(&name, &buffer, origin, downcase, target)); -} - -static dns_result_t -totext_mx(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - dns_name_t name; - dns_name_t prefix; - isc_boolean_t sub; - char buf[sizeof "64000"]; - unsigned short num; - - REQUIRE(rdata->type == 15); - - dns_name_init(&name, NULL); - dns_name_init(&prefix, NULL); - - dns_rdata_toregion(rdata, ®ion); - num = uint16_fromregion(®ion); - isc_region_consume(®ion, 2); - sprintf(buf, "%u", num); - RETERR(str_totext(buf, target)); - RETERR(str_totext(" ", target)); - dns_name_fromregion(&name, ®ion); - sub = name_prefix(&name, origin, &prefix); - return(dns_name_totext(&prefix, sub, target)); -} - -static dns_result_t -fromwire_mx(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - dns_name_t name; - isc_region_t sregion; - isc_region_t tregion; - - REQUIRE(type == 15); - - class = class; /* unused */ - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_GLOBAL14); - - dns_name_init(&name, NULL); - - isc_buffer_active(source, &sregion); - isc_buffer_available(target, &tregion); - if (tregion.length < 2) - return (DNS_R_NOSPACE); - if (sregion.length < 2) - return (DNS_R_UNEXPECTEDEND); - memcpy(tregion.base, sregion.base, 2); - isc_buffer_forward(source, 2); - isc_buffer_add(target, 2); - return (dns_name_fromwire(&name, source, dctx, downcase, target)); -} - -static dns_result_t -towire_mx(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - dns_name_t name; - isc_region_t region; - isc_region_t tr; - - REQUIRE(rdata->type == 15); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_GLOBAL14); - - isc_buffer_available(target, &tr); - dns_rdata_toregion(rdata, ®ion); - if (tr.length < 2) - return (DNS_R_NOSPACE); - memcpy(tr.base, region.base, 2); - isc_region_consume(®ion, 2); - isc_buffer_add(target, 2); - - dns_name_init(&name, NULL); - dns_name_fromregion(&name, ®ion); - - return (dns_name_towire(&name, cctx, target)); -} - -static int -compare_mx(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - dns_name_t name1; - dns_name_t name2; - isc_region_t region1; - isc_region_t region2; - int result; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 15); - - result = memcmp(rdata1->data, rdata2->data, 2); - if (result != 0) - return (result < 0 ? -1 : 1); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_rdata_toregion(rdata1, ®ion1); - dns_rdata_toregion(rdata2, ®ion2); - - isc_region_consume(®ion1, 2); - isc_region_consume(®ion2, 2); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - return (dns_name_rdatacompare(&name1, &name2)); -} - -static dns_result_t -fromstruct_mx(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 15); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_mx(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 15); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_MX_15_H */ diff --git a/lib/dns/rdata/generic/ns_2.h b/lib/dns/rdata/generic/ns_2.h index bf9c5f31d1..14e7603eb4 100644 --- a/lib/dns/rdata/generic/ns_2.h +++ b/lib/dns/rdata/generic/ns_2.h @@ -15,137 +15,8 @@ * SOFTWARE. */ - /* $Id: ns_2.h,v 1.10 1999/02/24 06:31:33 marka Exp $ */ + /* $Id: ns_2.h,v 1.11 1999/05/05 01:55:10 marka Exp $ */ #ifndef RDATA_GENERIC_NS_2_H #define RDATA_GENERIC_NS_2_H - -static dns_result_t -fromtext_ns(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - dns_name_t name; - isc_buffer_t buffer; - - REQUIRE(type == 2); - - class = class; /*unused*/ - - RETERR(gettoken(lexer, &token,isc_tokentype_string, ISC_FALSE)); - - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - return (dns_name_fromtext(&name, &buffer, origin, downcase, target)); -} - -static dns_result_t -totext_ns(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - dns_name_t name; - dns_name_t prefix; - isc_boolean_t sub; - - REQUIRE(rdata->type == 2); - - dns_name_init(&name, NULL); - dns_name_init(&prefix, NULL); - - dns_rdata_toregion(rdata, ®ion); - dns_name_fromregion(&name, ®ion); - - sub = name_prefix(&name, origin, &prefix); - - return (dns_name_totext(&prefix, sub, target)); -} - -static dns_result_t -fromwire_ns(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - dns_name_t name; - - REQUIRE(type == 2); - - class = class; /*unused*/ - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_GLOBAL14); - - dns_name_init(&name, NULL); - return (dns_name_fromwire(&name, source, dctx, downcase, target)); -} - -static dns_result_t -towire_ns(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - dns_name_t name; - isc_region_t region; - - REQUIRE(rdata->type == 2); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_GLOBAL14); - - dns_name_init(&name, NULL); - dns_rdata_toregion(rdata, ®ion); - dns_name_fromregion(&name, ®ion); - - return (dns_name_towire(&name, cctx, target)); -} - -static int -compare_ns(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - dns_name_t name1; - dns_name_t name2; - isc_region_t region1; - isc_region_t region2; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 2); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_rdata_toregion(rdata1, ®ion1); - dns_rdata_toregion(rdata2, ®ion2); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - return (dns_name_rdatacompare(&name1, &name2)); -} - -static dns_result_t -fromstruct_ns(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 2); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_ns(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 2); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_NS_2_H */ diff --git a/lib/dns/rdata/generic/null_10.h b/lib/dns/rdata/generic/null_10.h index eb2ee9b439..4d1bf9100c 100644 --- a/lib/dns/rdata/generic/null_10.h +++ b/lib/dns/rdata/generic/null_10.h @@ -15,102 +15,8 @@ * SOFTWARE. */ - /* $Id: null_10.h,v 1.7 1999/02/16 22:51:18 marka Exp $ */ + /* $Id: null_10.h,v 1.8 1999/05/05 01:55:10 marka Exp $ */ #ifndef RDATA_GENERIC_NULL_10_H #define RDATA_GENERIC_NULL_10_H - -static dns_result_t -fromtext_null(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - - REQUIRE(type == 10); - - class = class; /*unused*/ - type = type; /*unused*/ - lexer = lexer; /*unused*/ - origin = origin; /*unused*/ - downcase = downcase; /*unused*/ - target = target; /*unused*/ - - return (DNS_R_SUCCESS); -} - -static dns_result_t -totext_null(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - - - REQUIRE(rdata->type == 10); - REQUIRE(rdata->length == 0); - - origin = origin; /*unused*/ - target = target; /*unused*/ - - return (DNS_R_SUCCESS); -} - -static dns_result_t -fromwire_null(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - - REQUIRE(type == 10); - - class = class; /*unused*/ - dctx = dctx; /*unused*/ - downcase = downcase; /*unused*/ - target = target; /*unused*/ - source = source; /*unused*/ - - return (DNS_R_SUCCESS); -} - -static dns_result_t -towire_null(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - - REQUIRE(rdata->type == 10); - - cctx = cctx; /*unused*/ - target = target; /*unused*/ - - return (DNS_R_SUCCESS); -} - -static int -compare_null(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - - REQUIRE(rdata1->type == rdata1->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 10); - - return (0); -} - -static dns_result_t -fromstruct_null(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 10); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_null(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 10); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_NULL_10_H */ diff --git a/lib/dns/rdata/generic/nxt_30.h b/lib/dns/rdata/generic/nxt_30.h index d197148fd6..3e7afb3ef8 100644 --- a/lib/dns/rdata/generic/nxt_30.h +++ b/lib/dns/rdata/generic/nxt_30.h @@ -15,203 +15,10 @@ * SOFTWARE. */ - /* $Id: nxt_30.h,v 1.7 1999/02/24 06:31:33 marka Exp $ */ + /* $Id: nxt_30.h,v 1.8 1999/05/05 01:55:10 marka Exp $ */ /* RFC 2065 */ #ifndef RDATA_GENERIC_NXT_30_H #define RDATA_GENERIC_NXT_30_H - -static dns_result_t -fromtext_nxt(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - dns_name_t name; - isc_buffer_t buffer; - char *e; - unsigned char bm[8*1024]; /* 64k bits */ - dns_rdatatype_t covered; - dns_rdatatype_t maxcovered = dns_rdatatype_none; - isc_boolean_t first = ISC_TRUE; - unsigned int n; - - REQUIRE(type == 30); - - class = class; /*unused*/ - - /* next domain */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - RETERR(dns_name_fromtext(&name, &buffer, origin, downcase, target)); - - memset(bm, 0, sizeof bm); - while (1) { - RETERR(gettoken(lexer, &token, isc_tokentype_string, - ISC_TRUE)); - if (token.type != isc_tokentype_string) - break; - covered = strtol(token.value.as_pointer, &e, 10); - if (*e == 0) - (void) NULL; - else if (dns_rdatatype_fromtext(&covered, - &token.value.as_textregion) == DNS_R_UNKNOWN) - return (DNS_R_UNKNOWN); - if (first || covered > maxcovered) - maxcovered = covered; - first = ISC_FALSE; - bm[covered/8] |= (0x80>>(covered%8)); - } - isc_lex_ungettoken(lexer, &token); - if (first) - return (DNS_R_SUCCESS); - n = (maxcovered + 8) / 8; - return (mem_tobuffer(target, bm, n)); -} - -static dns_result_t -totext_nxt(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t sr; - char buf[sizeof "65535"]; - unsigned int i, j; - dns_name_t name; - dns_name_t prefix; - dns_result_t result; - isc_boolean_t sub; - - REQUIRE(rdata->type == 30); - - dns_name_init(&name, NULL); - dns_name_init(&prefix, NULL); - dns_rdata_toregion(rdata, &sr); - dns_name_fromregion(&name, &sr); - isc_region_consume(&sr, name_length(&name)); - sub = name_prefix(&name, origin, &prefix); - RETERR(dns_name_totext(&prefix, sub, target)); - - RETERR(str_totext(" ( ", target)); - - for (i = 0 ; i < sr.length ; i++) { - if (sr.base[i] != 0) - for (j = 0; j < 8; j++) - if ((sr.base[i] & (0x80>>j)) != 0) { - result = dns_rdatatype_totext( - i * 8 + j, target); - if (result == DNS_R_SUCCESS) { - RETERR(str_totext(" ", - target)); - continue; - } - if (result != DNS_R_UNKNOWN) - return (result); - sprintf(buf, "%u", i * 8 + j); - RETERR(str_totext(" ", target)); - RETERR(str_totext(buf, target)); - } - } - return (str_totext(")", target)); -} - -static dns_result_t -fromwire_nxt(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_region_t sr; - dns_name_t name; - - REQUIRE(type == 30); - - class = class; /*unused*/ - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_NONE); - - dns_name_init(&name, NULL); - RETERR(dns_name_fromwire(&name, source, dctx, downcase, target)); - - isc_buffer_active(source, &sr); - if (sr.length > 8 * 1024) - return (DNS_R_EXTRADATA); - RETERR(mem_tobuffer(target, sr.base, sr.length)); - isc_buffer_forward(source, sr.length); - return (DNS_R_SUCCESS); -} - -static dns_result_t -towire_nxt(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - isc_region_t sr; - dns_name_t name; - - REQUIRE(rdata->type == 30); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); - - dns_name_init(&name, NULL); - dns_rdata_toregion(rdata, &sr); - dns_name_fromregion(&name, &sr); - isc_region_consume(&sr, name_length(&name)); - RETERR(dns_name_towire(&name, cctx, target)); - - return (mem_tobuffer(target, sr.base, sr.length)); -} - -static int -compare_nxt(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - isc_region_t r1; - isc_region_t r2; - dns_name_t name1; - dns_name_t name2; - int result; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 30); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - dns_rdata_toregion(rdata1, &r1); - dns_rdata_toregion(rdata2, &r2); - dns_name_fromregion(&name1, &r1); - dns_name_fromregion(&name2, &r2); - result = dns_name_rdatacompare(&name1, &name2); - if (result != 0) - return (result); - - return (compare_region(&r1, &r2)); -} - -static dns_result_t -fromstruct_nxt(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 30); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_nxt(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 30); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_NXT_30_H */ diff --git a/lib/dns/rdata/generic/proforma.h b/lib/dns/rdata/generic/proforma.h index cbe3be5ec5..b0db7f01f7 100644 --- a/lib/dns/rdata/generic/proforma.h +++ b/lib/dns/rdata/generic/proforma.h @@ -15,95 +15,8 @@ * SOFTWARE. */ - /* $Id: proforma.h,v 1.8 1999/02/24 06:31:33 marka Exp $ */ + /* $Id: proforma.h,v 1.9 1999/05/05 01:55:11 marka Exp $ */ #ifndef RDATA_GENERIC_#_#_H #define RDATA_GENERIC_#_#_H - -static dns_result_t -fromtext_#(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) { - isc_token_t token; - - REQUIRE(type == #); - REQUIRE(class == #); - - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -totext_#(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - - REQUIRE(rdata->type == #); - REQUIRE(rdata->class == #); - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -fromwire_#(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) { - - REQUIRE(type == #); - REQUIRE(class == #); - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_LOCAL); - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -towire_#(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - - REQUIRE(rdata->type == #); - REQUIRE(rdata->class == #); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL): - else - dns_compress_setmethods(cctx, DNS_COMPRESS_LOCAL); - - return (DNS_R_NOTIMPLEMENTED); -} - -static int -compare_#(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - isc_region_t r1; - isc_region_t r2; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == #); - REQUIRE(rdata1->class == #); - - dns_rdata_toregion(rdata1, &r1); - dns_rdata_toregion(rdata2, &r2); - return (compare_region(&r1, &r2)); -} - -static dns_result_t -fromstruct_#(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) { - - REQUIRE(type == #); - REQUIRE(class == #); - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_#(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == #); - REQUIRE(rdata->class == #); - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_#_#_H */ diff --git a/lib/dns/rdata/generic/ptr_12.h b/lib/dns/rdata/generic/ptr_12.h index f14fac47c9..96e074ea02 100644 --- a/lib/dns/rdata/generic/ptr_12.h +++ b/lib/dns/rdata/generic/ptr_12.h @@ -15,137 +15,8 @@ * SOFTWARE. */ - /* $Id: ptr_12.h,v 1.11 1999/02/24 06:31:34 marka Exp $ */ + /* $Id: ptr_12.h,v 1.12 1999/05/05 01:55:11 marka Exp $ */ #ifndef RDATA_GENERIC_PTR_12_H #define RDATA_GENERIC_PTR_12_H - -static dns_result_t -fromtext_ptr(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - dns_name_t name; - isc_buffer_t buffer; - - REQUIRE(type == 12); - - class = class; /*unused*/ - - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - return (dns_name_fromtext(&name, &buffer, origin, downcase, target)); -} - -static dns_result_t -totext_ptr(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - dns_name_t name; - dns_name_t prefix; - isc_boolean_t sub; - - REQUIRE(rdata->type == 12); - - dns_name_init(&name, NULL); - dns_name_init(&prefix, NULL); - - dns_rdata_toregion(rdata, ®ion); - dns_name_fromregion(&name, ®ion); - - sub = name_prefix(&name, origin, &prefix); - - return (dns_name_totext(&prefix, sub, target)); -} - -static dns_result_t -fromwire_ptr(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - dns_name_t name; - - REQUIRE(type == 12); - - class = class; /* unused */ - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_GLOBAL14); - - dns_name_init(&name, NULL); - return (dns_name_fromwire(&name, source, dctx, downcase, target)); -} - -static dns_result_t -towire_ptr(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - dns_name_t name; - isc_region_t region; - - REQUIRE(rdata->type == 12); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_GLOBAL14); - - dns_name_init(&name, NULL); - dns_rdata_toregion(rdata, ®ion); - dns_name_fromregion(&name, ®ion); - - return (dns_name_towire(&name, cctx, target)); -} - -static int -compare_ptr(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - dns_name_t name1; - dns_name_t name2; - isc_region_t region1; - isc_region_t region2; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 12); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_rdata_toregion(rdata1, ®ion1); - dns_rdata_toregion(rdata2, ®ion2); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - return (dns_name_rdatacompare(&name1, &name2)); -} - -static dns_result_t -fromstruct_ptr(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 12); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_ptr(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 12); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_PTR_12_H */ diff --git a/lib/dns/rdata/generic/rp_17.h b/lib/dns/rdata/generic/rp_17.h index 6c781b73b1..4abc773e02 100644 --- a/lib/dns/rdata/generic/rp_17.h +++ b/lib/dns/rdata/generic/rp_17.h @@ -15,185 +15,10 @@ * SOFTWARE. */ - /* $Id: rp_17.h,v 1.5 1999/02/24 06:31:34 marka Exp $ */ + /* $Id: rp_17.h,v 1.6 1999/05/05 01:55:11 marka Exp $ */ /* RFC 1183 */ #ifndef RDATA_GENERIC_RP_17_H #define RDATA_GENERIC_RP_17_H - -static dns_result_t -fromtext_rp(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - dns_name_t name; - isc_buffer_t buffer; - int i; - - REQUIRE(type == 17); - - class = class; /*unused*/ - - for (i = 0; i < 2 ; i++) { - RETERR(gettoken(lexer, &token, isc_tokentype_string, - ISC_FALSE)); - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - RETERR(dns_name_fromtext(&name, &buffer, origin, - downcase, target)); - } - return (DNS_R_SUCCESS); -} - -static dns_result_t -totext_rp(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - dns_name_t rmail; - dns_name_t email; - dns_name_t prefix; - isc_boolean_t sub; - - REQUIRE(rdata->type == 17); - - dns_name_init(&rmail, NULL); - dns_name_init(&email, NULL); - dns_name_init(&prefix, NULL); - - dns_rdata_toregion(rdata, ®ion); - - dns_name_fromregion(&rmail, ®ion); - isc_region_consume(®ion, rmail.length); - - dns_name_fromregion(&email, ®ion); - isc_region_consume(®ion, email.length); - - sub = name_prefix(&rmail, origin, &prefix); - - RETERR(dns_name_totext(&prefix, sub, target)); - - RETERR(str_totext(" ", target)); - - sub = name_prefix(&email, origin, &prefix); - return (dns_name_totext(&prefix, sub, target)); -} - -static dns_result_t -fromwire_rp(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - dns_name_t rmail; - dns_name_t email; - - REQUIRE(type == 17); - - class = class; /*unused*/ - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_NONE); - - dns_name_init(&rmail, NULL); - dns_name_init(&email, NULL); - - RETERR(dns_name_fromwire(&rmail, source, dctx, downcase, target)); - return (dns_name_fromwire(&email, source, dctx, downcase, target)); -} - -static dns_result_t -towire_rp(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - isc_region_t region; - dns_name_t rmail; - dns_name_t email; - - REQUIRE(rdata->type == 17); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); - - dns_name_init(&rmail, NULL); - dns_name_init(&email, NULL); - - dns_rdata_toregion(rdata, ®ion); - - dns_name_fromregion(&rmail, ®ion); - isc_region_consume(®ion, rmail.length); - - RETERR(dns_name_towire(&rmail, cctx, target)); - - dns_name_fromregion(&rmail, ®ion); - isc_region_consume(®ion, rmail.length); - - return (dns_name_towire(&rmail, cctx, target)); -} - -static int -compare_rp(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - isc_region_t region1; - isc_region_t region2; - dns_name_t name1; - dns_name_t name2; - int result; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 17); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_rdata_toregion(rdata1, ®ion1); - dns_rdata_toregion(rdata2, ®ion2); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - result = dns_name_rdatacompare(&name1, &name2); - if (result != 0) - return (result); - - isc_region_consume(®ion1, name_length(&name1)); - isc_region_consume(®ion2, name_length(&name2)); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - result = dns_name_rdatacompare(&name1, &name2); - return (result); -} - -static dns_result_t -fromstruct_rp(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 17); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_rp(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 17); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_RP_17_H */ diff --git a/lib/dns/rdata/generic/rt_21.h b/lib/dns/rdata/generic/rt_21.h index 4257da1fa5..192290ed8f 100644 --- a/lib/dns/rdata/generic/rt_21.h +++ b/lib/dns/rdata/generic/rt_21.h @@ -15,175 +15,10 @@ * SOFTWARE. */ - /* $Id: rt_21.h,v 1.5 1999/02/24 06:31:34 marka Exp $ */ + /* $Id: rt_21.h,v 1.6 1999/05/05 01:55:11 marka Exp $ */ /* RFC 1183 */ #ifndef RDATA_GENERIC_RT_21_H #define RDATA_GENERIC_RT_21_H - -static dns_result_t -fromtext_rt(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - dns_name_t name; - isc_buffer_t buffer; - - REQUIRE(type == 21); - - class = class; /*unused*/ - - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - - RETERR(uint16_tobuffer(token.value.as_ulong, target)); - - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - return (dns_name_fromtext(&name, &buffer, origin, downcase, target)); -} - -static dns_result_t -totext_rt(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - dns_name_t name; - dns_name_t prefix; - isc_boolean_t sub; - char buf[sizeof "64000"]; - unsigned short num; - - REQUIRE(rdata->type == 21); - - dns_name_init(&name, NULL); - dns_name_init(&prefix, NULL); - - dns_rdata_toregion(rdata, ®ion); - num = uint16_fromregion(®ion); - isc_region_consume(®ion, 2); - sprintf(buf, "%u", num); - RETERR(str_totext(buf, target)); - RETERR(str_totext(" ", target)); - dns_name_fromregion(&name, ®ion); - sub = name_prefix(&name, origin, &prefix); - return(dns_name_totext(&prefix, sub, target)); -} - -static dns_result_t -fromwire_rt(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - dns_name_t name; - isc_region_t sregion; - isc_region_t tregion; - - REQUIRE(type == 21); - class = class; /* unused */ - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_NONE); - - dns_name_init(&name, NULL); - - isc_buffer_active(source, &sregion); - isc_buffer_available(target, &tregion); - if (tregion.length < 2) - return (DNS_R_NOSPACE); - if (sregion.length < 2) - return (DNS_R_UNEXPECTEDEND); - memcpy(tregion.base, sregion.base, 2); - isc_buffer_forward(source, 2); - isc_buffer_add(target, 2); - return (dns_name_fromwire(&name, source, dctx, downcase, target)); -} - -static dns_result_t -towire_rt(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - dns_name_t name; - isc_region_t region; - isc_region_t tr; - - REQUIRE(rdata->type == 21); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); - - isc_buffer_available(target, &tr); - dns_rdata_toregion(rdata, ®ion); - if (tr.length < 2) - return (DNS_R_NOSPACE); - memcpy(tr.base, region.base, 2); - isc_region_consume(®ion, 2); - isc_buffer_add(target, 2); - - dns_name_init(&name, NULL); - dns_name_fromregion(&name, ®ion); - - return (dns_name_towire(&name, cctx, target)); -} - -static int -compare_rt(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - dns_name_t name1; - dns_name_t name2; - isc_region_t region1; - isc_region_t region2; - int result; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 21); - - result = memcmp(rdata1->data, rdata2->data, 2); - if (result != 0) - return (result < 0 ? -1 : 1); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_rdata_toregion(rdata1, ®ion1); - dns_rdata_toregion(rdata2, ®ion2); - - isc_region_consume(®ion1, 2); - isc_region_consume(®ion2, 2); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - return (dns_name_rdatacompare(&name1, &name2)); -} - -static dns_result_t -fromstruct_rt(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 21); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_rt(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 21); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_RT_21_H */ diff --git a/lib/dns/rdata/generic/sig_24.h b/lib/dns/rdata/generic/sig_24.h index 429fd47c26..bd3a855674 100644 --- a/lib/dns/rdata/generic/sig_24.h +++ b/lib/dns/rdata/generic/sig_24.h @@ -15,302 +15,10 @@ * SOFTWARE. */ - /* $Id: sig_24.h,v 1.9 1999/02/24 06:31:34 marka Exp $ */ + /* $Id: sig_24.h,v 1.10 1999/05/05 01:55:11 marka Exp $ */ /* RFC 2065 */ #ifndef RDATA_GENERIC_SIG_24_H #define RDATA_GENERIC_SIG_24_H - -static dns_result_t -fromtext_sig(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - unsigned char c; - dns_rdatatype_t covered; - isc_textregion_t *tsr; - char *e; - dns_result_t result; - dns_name_t name; - isc_buffer_t buffer; - - REQUIRE(type == 24); - - class = class; /*unused*/ - origin = origin; /*unused*/ - downcase = downcase; /*unused*/ - - /* type covered */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - tsr = &token.value.as_textregion; - result = dns_rdatatype_fromtext(&covered, tsr); - if (result != DNS_R_SUCCESS && result != DNS_R_NOTIMPLEMENTED) { - covered = strtol(token.value.as_pointer, &e, 10); - if (*e != 0) - return (result); - } - RETERR(uint16_tobuffer(covered, target)); - - /* algorithm */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - if (token.value.as_ulong > 0xff) - return (DNS_R_RANGE); - c = token.value.as_ulong; - RETERR(mem_tobuffer(target, &c, 1)); - - /* labels */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - if (token.value.as_ulong > 0xff) - return (DNS_R_RANGE); - c = token.value.as_ulong; - RETERR(mem_tobuffer(target, &c, 1)); - - /* original ttl */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - RETERR(uint32_tobuffer(token.value.as_ulong, target)); - - /* signature expiration */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - RETERR(time_tobuffer(token.value.as_pointer, target)); - - /* time signed */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - RETERR(time_tobuffer(token.value.as_pointer, target)); - - /* key footprint */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - RETERR(uint16_tobuffer(token.value.as_ulong, target)); - - /* signer */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - RETERR(dns_name_fromtext(&name, &buffer, origin, downcase, target)); - - /* sig */ - return (base64_tobuffer(lexer, target, -1)); -} - -static dns_result_t -totext_sig(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t sr; - char buf[sizeof "4294967295"]; - dns_rdatatype_t covered; - unsigned long ttl; - unsigned long when; - unsigned long exp; - unsigned long foot; - dns_name_t name; - dns_name_t prefix; - isc_boolean_t sub; - - REQUIRE(rdata->type == 24); - - origin = origin; /*unused*/ - - dns_rdata_toregion(rdata, &sr); - - /* type covered */ - covered = uint16_fromregion(&sr); - isc_region_consume(&sr, 2); - RETERR(dns_rdatatype_totext(covered, target)); - RETERR(str_totext(" ", target)); - - /* algorithm */ - sprintf(buf, "%u", sr.base[0]); - isc_region_consume(&sr, 1); - RETERR(str_totext(buf, target)); - RETERR(str_totext(" ", target)); - - /* labels */ - sprintf(buf, "%u", sr.base[0]); - isc_region_consume(&sr, 1); - RETERR(str_totext(buf, target)); - RETERR(str_totext(" ", target)); - - /* ttl */ - ttl = uint32_fromregion(&sr); - isc_region_consume(&sr, 4); - sprintf(buf, "%lu", ttl); - RETERR(str_totext(buf, target)); - RETERR(str_totext(" ", target)); - - /* sig exp */ - exp = uint32_fromregion(&sr); - isc_region_consume(&sr, 4); - RETERR(time_totext(exp, target)); - RETERR(str_totext(" ", target)); - - /* time signed */ - when = uint32_fromregion(&sr); - isc_region_consume(&sr, 4); - RETERR(time_totext(when, target)); - RETERR(str_totext(" ", target)); - - /* footprint */ - foot = uint16_fromregion(&sr); - isc_region_consume(&sr, 2); - sprintf(buf, "%lu", ttl); - RETERR(str_totext(buf, target)); - RETERR(str_totext(" ", target)); - - /* signer */ - dns_name_init(&name, NULL); - dns_name_init(&prefix, NULL); - dns_name_fromregion(&name, &sr); - isc_region_consume(&sr, name_length(&name)); - sub = name_prefix(&name, origin, &prefix); - RETERR(dns_name_totext(&prefix, sub, target)); - RETERR(str_totext(" ", target)); - - /* sig */ - return (base64_totext(&sr, target)); -} - -static dns_result_t -fromwire_sig(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_region_t sr; - dns_name_t name; - - REQUIRE(type == 24); - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_NONE); - - class = class; /*unused*/ - - isc_buffer_active(source, &sr); - /* - * type covered: 2 - * algorithm: 1 - * labels: 1 - * original ttl: 4 - * signature expiration: 4 - * time signed: 4 - * key footprint: 2 - */ - if (sr.length < 18) - return (DNS_R_UNEXPECTEDEND); - - isc_buffer_forward(source, 18); - RETERR(mem_tobuffer(target, sr.base, 18)); - - /* signer */ - dns_name_init(&name, NULL); - RETERR(dns_name_fromwire(&name, source, dctx, downcase, target)); - - /* sig */ - isc_buffer_active(source, &sr); - isc_buffer_forward(source, sr.length); - return(mem_tobuffer(target, sr.base, sr.length)); -} - -static dns_result_t -towire_sig(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - isc_region_t sr; - dns_name_t name; - - REQUIRE(rdata->type == 24); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); - - dns_rdata_toregion(rdata, &sr); - /* - * type covered: 2 - * algorithm: 1 - * labels: 1 - * original ttl: 4 - * signature expiration: 4 - * time signed: 4 - * key footprint: 2 - */ - RETERR(mem_tobuffer(target, sr.base, 18)); - isc_region_consume(&sr, 18); - - /* signer */ - dns_name_init(&name, NULL); - dns_name_fromregion(&name, &sr); - isc_region_consume(&sr, name_length(&name)); - RETERR(dns_name_towire(&name, cctx, target)); - - /* signature */ - return (mem_tobuffer(target, sr.base, sr.length)); -} - -static int -compare_sig(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - isc_region_t r1; - isc_region_t r2; - dns_name_t name1; - dns_name_t name2; - int result; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 24); - - dns_rdata_toregion(rdata1, &r1); - dns_rdata_toregion(rdata2, &r2); - - INSIST(r1.length > 18); - INSIST(r2.length > 18); - r1.length = 18; - r2.length = 18; - result = compare_region(&r1, &r2); - if (result != 0) - return (result); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - dns_rdata_toregion(rdata1, &r1); - dns_rdata_toregion(rdata2, &r2); - isc_region_consume(&r1, 18); - isc_region_consume(&r2, 18); - dns_name_fromregion(&name1, &r1); - dns_name_fromregion(&name2, &r2); - result = dns_name_rdatacompare(&name1, &name2); - if (result != 0) - return (result); - isc_region_consume(&r1, name_length(&name1)); - isc_region_consume(&r2, name_length(&name2)); - - return (compare_region(&r1, &r2)); -} - -static dns_result_t -fromstruct_sig(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 24); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_sig(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 24); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_SIG_24_H */ diff --git a/lib/dns/rdata/generic/soa_6.h b/lib/dns/rdata/generic/soa_6.h index 2275f2ac67..42052da79a 100644 --- a/lib/dns/rdata/generic/soa_6.h +++ b/lib/dns/rdata/generic/soa_6.h @@ -15,230 +15,23 @@ * SOFTWARE. */ - /* $Id: soa_6.h,v 1.14 1999/02/24 06:31:34 marka Exp $ */ + /* $Id: soa_6.h,v 1.15 1999/05/05 01:55:11 marka Exp $ */ #ifndef RDATA_GENERIC_SOA_6_H #define RDATA_GENERIC_SOA_6_H -static dns_result_t -fromtext_soa(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - dns_name_t name; - isc_buffer_t buffer; - int i; +typedef struct dns_rdata_soa { + dns_rdataclass_t rdclass; + dns_rdatatype_t rdtype; + ISC_LINK(void) link; + isc_mem_t *mctx; + dns_fixedname_t origin; + dns_fixedname_t mname; + isc_uint32_t serial; + isc_uint32_t refresh; + isc_uint32_t retry; + isc_uint32_t expire; + isc_uint32_t minimum; +} dns_rdata_soa_t; - REQUIRE(type == 6); - - class = class; /*unused*/ - - for (i = 0 ; i < 2 ; i++) { - RETERR(gettoken(lexer, &token, isc_tokentype_string, - ISC_FALSE)); - - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - RETERR(dns_name_fromtext(&name, &buffer, origin, - downcase, target)); - } - - for (i = 0; i < 5; i++) { - RETERR(gettoken(lexer, &token, isc_tokentype_number, - ISC_FALSE)); - RETERR(uint32_tobuffer(token.value.as_ulong, target)); - } - return (DNS_R_SUCCESS); -} - -static dns_result_t -totext_soa(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t dregion; - dns_name_t mname; - dns_name_t rname; - dns_name_t prefix; - isc_boolean_t sub; - int i; - - REQUIRE(rdata->type == 6); - - dns_name_init(&mname, NULL); - dns_name_init(&rname, NULL); - dns_name_init(&prefix, NULL); - - dns_rdata_toregion(rdata, &dregion); - - dns_name_fromregion(&mname, &dregion); - isc_region_consume(&dregion, name_length(&mname)); - - dns_name_fromregion(&rname, &dregion); - isc_region_consume(&dregion, name_length(&rname)); - - sub = name_prefix(&mname, origin, &prefix); - RETERR(dns_name_totext(&prefix, sub, target)); - - RETERR(str_totext(" ", target)); - - sub = name_prefix(&rname, origin, &prefix); - RETERR(dns_name_totext(&prefix, sub, target)); - - for (i = 0; i < 5 ; i++) { - char buf[sizeof "2147483647"]; - unsigned long num; - - RETERR(str_totext(" ", target)); - - num = uint32_fromregion(&dregion); - isc_region_consume(&dregion, 4); - sprintf(buf, "%lu", num); - RETERR(str_totext(buf, target)); - } - return (DNS_R_SUCCESS); -} - -static dns_result_t -fromwire_soa(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - dns_name_t mname; - dns_name_t rname; - isc_region_t sregion; - isc_region_t tregion; - - REQUIRE(type == 6); - - class = class; /*unused*/ - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_GLOBAL14); - - dns_name_init(&mname, NULL); - dns_name_init(&rname, NULL); - - RETERR(dns_name_fromwire(&mname, source, dctx, downcase, target)); - RETERR(dns_name_fromwire(&rname, source, dctx, downcase, target)); - - isc_buffer_active(source, &sregion); - isc_buffer_available(target, &tregion); - - if (sregion.length < 20) - return (DNS_R_UNEXPECTEDEND); - if (tregion.length < 20) - return (DNS_R_NOSPACE); - - memcpy(tregion.base, sregion.base, 20); - isc_buffer_forward(source, 20); - isc_buffer_add(target, 20); - return (DNS_R_SUCCESS); -} - -static dns_result_t -towire_soa(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - isc_region_t sregion; - isc_region_t tregion; - dns_name_t mname; - dns_name_t rname; - - REQUIRE(rdata->type == 6); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_GLOBAL14); - - dns_name_init(&mname, NULL); - dns_name_init(&rname, NULL); - - dns_rdata_toregion(rdata, &sregion); - dns_name_fromregion(&mname, &sregion); - isc_region_consume(&sregion, name_length(&mname)); - RETERR(dns_name_towire(&mname, cctx, target)); - - dns_name_fromregion(&rname, &sregion); - isc_region_consume(&sregion, name_length(&rname)); - RETERR(dns_name_towire(&rname, cctx, target)); - - isc_buffer_available(target, &tregion); - if (tregion.length < 20) - return (DNS_R_NOSPACE); - - memcpy(tregion.base, sregion.base, 20); - isc_buffer_add(target, 20); - return (DNS_R_SUCCESS); -} - -static int -compare_soa(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - isc_region_t region1; - isc_region_t region2; - dns_name_t name1; - dns_name_t name2; - int result; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 6); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_rdata_toregion(rdata1, ®ion1); - dns_rdata_toregion(rdata2, ®ion2); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - result = dns_name_rdatacompare(&name1, &name2); - if (result != 0) - return (result); - - isc_region_consume(®ion1, name_length(&name1)); - isc_region_consume(®ion2, name_length(&name2)); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - result = dns_name_rdatacompare(&name1, &name2); - if (result != 0) - return (result); - - isc_region_consume(®ion1, name_length(&name1)); - isc_region_consume(®ion2, name_length(&name2)); - - return (compare_region(®ion1, ®ion2)); -} - -static dns_result_t -fromstruct_soa(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 6); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_soa(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 6); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_SOA_6_H */ diff --git a/lib/dns/rdata/generic/tkey_249.h b/lib/dns/rdata/generic/tkey_249.h index 33fab51246..ced4433b71 100644 --- a/lib/dns/rdata/generic/tkey_249.h +++ b/lib/dns/rdata/generic/tkey_249.h @@ -15,282 +15,10 @@ * SOFTWARE. */ - /* $Id: tkey_249.h,v 1.7 1999/02/24 06:31:34 marka Exp $ */ + /* $Id: tkey_249.h,v 1.8 1999/05/05 01:55:11 marka Exp $ */ /* draft-ietf-dnssec-tkey-01.txt */ #ifndef RDATA_GENERIC_TKEY_249_H #define RDATA_GENERIC_TKEY_249_H - -static dns_result_t -fromtext_tkey(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - dns_rcode_t rcode; - dns_name_t name; - isc_buffer_t buffer; - char *e; - - REQUIRE(type == 249); - - class = class; /*unused*/ - - - /* Algorithm */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - RETERR(dns_name_fromtext(&name, &buffer, origin, downcase, target)); - - - /* Inception */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - RETERR(uint32_tobuffer(token.value.as_ulong, target)); - - /* Expiration */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - RETERR(uint32_tobuffer(token.value.as_ulong, target)); - - /* Mode */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - if (token.value.as_ulong > 0xffff) - return (DNS_R_RANGE); - RETERR(uint16_tobuffer(token.value.as_ulong, target)); - - /* Error */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - if (dns_rcode_fromtext(&rcode, &token.value.as_textregion) - != DNS_R_SUCCESS) { - rcode = strtol(token.value.as_pointer, &e, 10); - if (*e != 0) - return (DNS_R_UNKNOWN); - if (rcode > 0xffff) - return (DNS_R_RANGE); - } - RETERR(uint16_tobuffer(rcode, target)); - - /* Signature Size */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - if (token.value.as_ulong > 0xffff) - return (DNS_R_RANGE); - RETERR(uint16_tobuffer(token.value.as_ulong, target)); - - /* Signature */ - RETERR(base64_tobuffer(lexer, target, token.value.as_ulong)); - - /* Other Len */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - if (token.value.as_ulong > 0xffff) - return (DNS_R_RANGE); - RETERR(uint16_tobuffer(token.value.as_ulong, target)); - - /* Other Data */ - return (base64_tobuffer(lexer, target, token.value.as_ulong)); -} - -static dns_result_t -totext_tkey(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t sr; - isc_region_t sigr; - char buf[sizeof "4294967295 "]; - unsigned long n; - dns_name_t name; - dns_name_t prefix; - isc_boolean_t sub; - - REQUIRE(rdata->type == 249); - - dns_rdata_toregion(rdata, &sr); - - /* Algorithm */ - dns_name_init(&name, NULL); - dns_name_init(&prefix, NULL); - dns_name_fromregion(&name, &sr); - sub = name_prefix(&name, origin, &prefix); - RETERR(dns_name_totext(&prefix, sub, target)); - RETERR(str_totext(" ", target)); - isc_region_consume(&sr, name_length(&name)); - - /* Inception */ - n = uint32_fromregion(&sr); - isc_region_consume(&sr, 4); - sprintf(buf, "%lu ", n); - RETERR(str_totext(buf, target)); - - /* Expiration */ - n = uint32_fromregion(&sr); - isc_region_consume(&sr, 4); - sprintf(buf, "%lu ", n); - RETERR(str_totext(buf, target)); - - /* Mode */ - n = uint16_fromregion(&sr); - isc_region_consume(&sr, 2); - sprintf(buf, "%lu ", n); - RETERR(str_totext(buf, target)); - - /* Error */ - n = uint16_fromregion(&sr); - isc_region_consume(&sr, 2); - if (dns_rcode_totext(n, target) == DNS_R_SUCCESS) - RETERR(str_totext(" ", target)); - else { - sprintf(buf, "%lu ", n); - RETERR(str_totext(buf, target)); - } - - /* Signature Size */ - n = uint16_fromregion(&sr); - isc_region_consume(&sr, 2); - sprintf(buf, "%lu ", n); - RETERR(str_totext(buf, target)); - - /* Signature */ - REQUIRE(n <= sr.length); - sigr = sr; - sigr.length = n; - RETERR(base64_totext(&sigr, target)); - RETERR(str_totext(" ", target)); - isc_region_consume(&sr, n); - - /* Other Size */ - n = uint16_fromregion(&sr); - isc_region_consume(&sr, 2); - sprintf(buf, "%lu ", n); - RETERR(str_totext(buf, target)); - - /* Other */ - return (base64_totext(&sr, target)); -} - -static dns_result_t -fromwire_tkey(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_region_t sr; - unsigned long n; - dns_name_t name; - - REQUIRE(type == 249); - - class = class; /*unused*/ - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_NONE); - - /* Algorithm */ - dns_name_init(&name, NULL); - RETERR(dns_name_fromwire(&name, source, dctx, downcase, target)); - - /* - * Inception: 4 - * Expiration: 4 - * Mode: 2 - * Error: 2 - */ - isc_buffer_active(source, &sr); - if (sr.length < 12) - return (DNS_R_UNEXPECTEDEND); - RETERR(mem_tobuffer(target, sr.base, 12)); - isc_region_consume(&sr, 12); - isc_buffer_forward(source, 12); - - /* Signature Length + Signature */ - if (sr.length < 2) - return (DNS_R_UNEXPECTEDEND); - n = uint16_fromregion(&sr); - if (sr.length < n + 2) - return (DNS_R_UNEXPECTEDEND); - RETERR(mem_tobuffer(target, sr.base, n + 2)); - isc_region_consume(&sr, n + 2); - isc_buffer_forward(source, n + 2); - - /* Other Length + Other */ - if (sr.length < 2) - return (DNS_R_UNEXPECTEDEND); - n = uint16_fromregion(&sr); - if (sr.length < n + 2) - return (DNS_R_UNEXPECTEDEND); - isc_buffer_forward(source, n + 2); - return (mem_tobuffer(target, sr.base, n + 2)); -} - -static dns_result_t -towire_tkey(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - isc_region_t sr; - dns_name_t name; - - REQUIRE(rdata->type == 249); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); - - /* Algorithm */ - dns_rdata_toregion(rdata, &sr); - dns_name_init(&name, NULL); - dns_name_fromregion(&name, &sr); - RETERR(dns_name_towire(&name, cctx, target)); - isc_region_consume(&sr, name_length(&name)); - - return (mem_tobuffer(target, sr.base, sr.length)); -} - -static int -compare_tkey(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - isc_region_t r1; - isc_region_t r2; - dns_name_t name1; - dns_name_t name2; - int result; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 249); - - /* Algorithm */ - dns_rdata_toregion(rdata1, &r1); - dns_rdata_toregion(rdata2, &r2); - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - dns_name_fromregion(&name1, &r1); - dns_name_fromregion(&name2, &r2); - if ((result = dns_name_rdatacompare(&name1, &name2)) != 0) - return (result); - isc_region_consume(&r1, name_length(&name1)); - isc_region_consume(&r2, name_length(&name2)); - return (compare_region(&r1, &r2)); -} - -static dns_result_t -fromstruct_tkey(dns_rdataclass_t class, dns_rdatatype_t type, - void *source, isc_buffer_t *target) { - - REQUIRE(type == 249); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_tkey(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 249); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_TKEY_249_H */ diff --git a/lib/dns/rdata/generic/txt_16.h b/lib/dns/rdata/generic/txt_16.h index a29927cbd9..6b9315418a 100644 --- a/lib/dns/rdata/generic/txt_16.h +++ b/lib/dns/rdata/generic/txt_16.h @@ -15,130 +15,8 @@ * SOFTWARE. */ - /* $Id: txt_16.h,v 1.9 1999/02/16 22:42:30 marka Exp $ */ + /* $Id: txt_16.h,v 1.10 1999/05/05 01:55:11 marka Exp $ */ #ifndef RDATA_GENERIC_TXT_16_H #define RDATA_GENERIC_TXT_16_H - -static dns_result_t -fromtext_txt(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - - REQUIRE(type == 16); - - class = class; /*unused*/ - origin = origin; /*unused*/ - downcase = downcase; /*unused*/ - - while (1) { - RETERR(gettoken(lexer, &token, isc_tokentype_qstring, - ISC_TRUE)); - if (token.type != isc_tokentype_qstring && - token.type != isc_tokentype_string) - break; - RETERR(txt_fromtext(&token.value.as_textregion, target)); - } - /* Let upper layer handle eol/eof. */ - isc_lex_ungettoken(lexer, &token); - return (DNS_R_SUCCESS); -} - -static dns_result_t -totext_txt(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - - REQUIRE(rdata->type == 16); - - origin = origin; /*unused*/ - - dns_rdata_toregion(rdata, ®ion); - - while (region.length) { - RETERR(txt_totext(®ion, target)); - if (region.length) - RETERR(str_totext(" ", target)); - } - - return (DNS_R_SUCCESS); -} - -static dns_result_t -fromwire_txt(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - dns_result_t result; - - REQUIRE(type == 16); - - dctx = dctx; /*unused*/ - class = class; /*unused*/ - downcase = downcase; /*unused*/ - - while (!buffer_empty(source)) { - result = txt_fromwire(source, target); - if (result != DNS_R_SUCCESS) - return (result); - } - return (DNS_R_SUCCESS); -} - -static dns_result_t -towire_txt(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - isc_region_t region; - - REQUIRE(rdata->type == 16); - - cctx = cctx; /*unused*/ - - isc_buffer_available(target, ®ion); - if (region.length < rdata->length) - return (DNS_R_NOSPACE); - - memcpy(region.base, rdata->data, rdata->length); - isc_buffer_add(target, rdata->length); - return (DNS_R_SUCCESS); -} - -static int -compare_txt(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - isc_region_t r1; - isc_region_t r2; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 16); - - dns_rdata_toregion(rdata1, &r1); - dns_rdata_toregion(rdata2, &r2); - return (compare_region(&r1, &r2)); -} - -static dns_result_t -fromstruct_txt(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 16); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_txt(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 16); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_TXT_16_H */ diff --git a/lib/dns/rdata/generic/unspec_103.h b/lib/dns/rdata/generic/unspec_103.h index a79a847098..99799dfe68 100644 --- a/lib/dns/rdata/generic/unspec_103.h +++ b/lib/dns/rdata/generic/unspec_103.h @@ -15,100 +15,8 @@ * SOFTWARE. */ - /* $Id: unspec_103.h,v 1.2 1999/02/16 22:42:30 marka Exp $ */ + /* $Id: unspec_103.h,v 1.3 1999/05/05 01:55:11 marka Exp $ */ #ifndef RDATA_GENERIC_UNSPEC_103_H #define RDATA_GENERIC_UNSPEC_103_H - -static dns_result_t -fromtext_unspec(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - - REQUIRE(type == 103); - - class = class; /*unused*/ - origin = origin; /*unused*/ - downcase = downcase; /*unused*/ - - return (atob_tobuffer(lexer, target)); -} - -static dns_result_t -totext_unspec(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - - - REQUIRE(rdata->type == 103); - - origin = origin; /*unused*/ - - return (btoa_totext(rdata->data, rdata->length, target)); -} - -static dns_result_t -fromwire_unspec(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_region_t sr; - - REQUIRE(type == 103); - - class = class; /*unused*/ - dctx = dctx; /*unused*/ - downcase = downcase; /*unused*/ - isc_buffer_active(source, &sr); - isc_buffer_forward(source, sr.length); - return (mem_tobuffer(target, sr.base, sr.length)); -} - -static dns_result_t -towire_unspec(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - - REQUIRE(rdata->type == 103); - - cctx = cctx; /*unused*/ - - return (mem_tobuffer(target, rdata->data, rdata->length)); -} - -static int -compare_unspec(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - isc_region_t r1; - isc_region_t r2; - - REQUIRE(rdata1->type == rdata1->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 103); - - dns_rdata_toregion(rdata1, &r1); - dns_rdata_toregion(rdata2, &r2); - return (compare_region(&r1, &r2)); -} - -static dns_result_t -fromstruct_unspec(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 103); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_unspec(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 103); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_UNSPEC_103_H */ diff --git a/lib/dns/rdata/generic/x25_19.h b/lib/dns/rdata/generic/x25_19.h index 458182c4b0..5a7b707264 100644 --- a/lib/dns/rdata/generic/x25_19.h +++ b/lib/dns/rdata/generic/x25_19.h @@ -15,116 +15,10 @@ * SOFTWARE. */ - /* $Id: x25_19.h,v 1.2 1999/02/16 22:42:31 marka Exp $ */ + /* $Id: x25_19.h,v 1.3 1999/05/05 01:55:12 marka Exp $ */ /* RFC 1183 */ #ifndef RDATA_GENERIC_X25_19_H #define RDATA_GENERIC_X25_19_H - -#include - -static dns_result_t -fromtext_x25(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - unsigned int i; - - REQUIRE(type == 19); - - class = class; /*unused*/ - origin = origin; /*unused*/ - downcase = downcase; /*unused*/ - - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - for (i = 0; i < token.value.as_textregion.length; i++) - if (!isascii(token.value.as_textregion.base[i]&0xff) || - !isdigit(token.value.as_textregion.base[i]&0xff)) - return (DNS_R_RANGE); - return (txt_fromtext(&token.value.as_textregion, target)); -} - -static dns_result_t -totext_x25(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - - REQUIRE(rdata->type == 19); - - origin = origin; /*unused*/ - - dns_rdata_toregion(rdata, ®ion); - return (txt_totext(®ion, target)); -} - -static dns_result_t -fromwire_x25(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - - REQUIRE(type == 19); - - dctx = dctx; /* unused */ - class = class; /* unused */ - downcase = downcase; /* unused */ - - return (txt_fromwire(source, target)); -} - -static dns_result_t -towire_x25(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - - REQUIRE(rdata->type == 19); - - cctx = cctx; - - return (mem_tobuffer(target, rdata->data, rdata->length)); -} - -static int -compare_x25(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - int l; - int result; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 19); - - l = (rdata1->length < rdata2->length) ? rdata1->length : rdata2->length; - result = memcmp(rdata1->data, rdata2->data, l); - - if (result != 0) - result = (result < 0) ? -1 : 1; - else if (rdata1->length != rdata2->length) - result = (rdata1->length < rdata2->length) ? -1 : 1; - - return (result); -} - -static dns_result_t -fromstruct_x25(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 19); - - class = class; /*unused*/ - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_x25(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 19); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_X25_19_H */ diff --git a/lib/dns/rdata/in_1/a6_38.h b/lib/dns/rdata/in_1/a6_38.h index 2613e38307..c87b387e99 100644 --- a/lib/dns/rdata/in_1/a6_38.h +++ b/lib/dns/rdata/in_1/a6_38.h @@ -15,261 +15,10 @@ * SOFTWARE. */ - /* $Id: a6_38.h,v 1.7 1999/02/24 06:31:34 marka Exp $ */ + /* $Id: a6_38.h,v 1.8 1999/05/05 01:55:12 marka Exp $ */ /* draft-ietf-ipngwg-dns-lookups-03.txt */ #ifndef RDATA_IN_1_A6_28_H #define RDATA_IN_1_A6_28_H - -#include - -#include -#include - -#include -#include - -#include - -#ifndef MAX -#define MAX(A, B) ((A > B) ? (A) : (B)) -#endif - -static dns_result_t -fromtext_in_a6(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - unsigned char addr[16]; - unsigned char prefixlen; - unsigned char octets; - unsigned char mask; - dns_name_t name; - isc_buffer_t buffer; - - REQUIRE(type == 38); - REQUIRE(class == 1); - - /* prefix length */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - if (token.value.as_ulong > 128) - return (DNS_R_RANGE); - - prefixlen = token.value.as_ulong; - RETERR(mem_tobuffer(target, &prefixlen, 1)); - - /* suffix */ - if (prefixlen != 128) { - /* prefix 0..127 */ - octets = prefixlen/8; - /* octets 0..15 */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, - ISC_FALSE)); - if (isc_inet_pton(AF_INET6, token.value.as_pointer, addr) != 1) - return (DNS_R_BADAAAA); - mask = 0xff >> (prefixlen % 8); - addr[octets] &= mask; - RETERR(mem_tobuffer(target, &addr[octets], 16 - octets)); - } - - if (prefixlen == 0) - return (DNS_R_SUCCESS); - - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - return (dns_name_fromtext(&name, &buffer, origin, downcase, target)); -} - -static dns_result_t -totext_in_a6(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t tr; - isc_region_t sr; - unsigned char addr[16]; - unsigned char prefixlen; - unsigned char octets; - unsigned char mask; - char buf[sizeof "128"]; - dns_name_t name; - dns_name_t prefix; - isc_boolean_t sub; - - REQUIRE(rdata->type == 38); - REQUIRE(rdata->class == 1); - - dns_rdata_toregion(rdata, &sr); - prefixlen = sr.base[0]; - INSIST(prefixlen <= 128); - isc_region_consume(&sr, 1); - sprintf(buf, "%u", prefixlen); - RETERR(str_totext(buf, target)); - RETERR(str_totext(" ", target)); - - if (prefixlen != 128) { - octets = prefixlen/8; - memset(addr, 0, sizeof addr); - memcpy(&addr[octets], sr.base, 16 - octets); - mask = 0xff >> (prefixlen % 8); - addr[octets] &= mask; - isc_buffer_available(target, &tr); - if (isc_inet_ntop(AF_INET6, addr, - (char *)tr.base, tr.length) == NULL) - return (DNS_R_NOSPACE); - - isc_buffer_add(target, strlen((char *)tr.base)); - isc_region_consume(&sr, 16 - octets); - } - - if (prefixlen == 0) - return (DNS_R_SUCCESS); - - RETERR(str_totext(" ", target)); - dns_name_init(&name, NULL); - dns_name_init(&prefix, NULL); - dns_name_fromregion(&name, &sr); - sub = name_prefix(&name, origin, &prefix); - return(dns_name_totext(&prefix, sub, target)); -} - -static dns_result_t -fromwire_in_a6(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_region_t sr; - unsigned char prefixlen; - unsigned char octets; - unsigned char mask; - dns_name_t name; - - REQUIRE(type == 38); - REQUIRE(class == 1); - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_NONE); - - isc_buffer_active(source, &sr); - /* prefix length */ - if (sr.length < 1) - return (DNS_R_UNEXPECTEDEND); - prefixlen = sr.base[0]; - if (prefixlen > 128) - return (DNS_R_RANGE); - isc_region_consume(&sr, 1); - RETERR(mem_tobuffer(target, &prefixlen, 1)); - isc_buffer_forward(source, 1); - - /* suffix */ - if (prefixlen != 128) { - octets = 16 - prefixlen / 8; - if (sr.length < octets) - return (DNS_R_UNEXPECTEDEND); - mask = 0xff >> (prefixlen % 8); - sr.base[0] &= mask; /* ensure pad bits are zero */ - RETERR(mem_tobuffer(target, sr.base, octets)); - isc_buffer_forward(source, octets); - } - - if (prefixlen == 0) - return (DNS_R_SUCCESS); - - dns_name_init(&name, NULL); - return (dns_name_fromwire(&name, source, dctx, downcase, target)); -} - -static dns_result_t -towire_in_a6(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - isc_region_t sr; - dns_name_t name; - unsigned char prefixlen; - unsigned char octets; - - REQUIRE(rdata->type == 38); - REQUIRE(rdata->class == 1); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); - - dns_rdata_toregion(rdata, &sr); - prefixlen = sr.base[0]; - INSIST(prefixlen <= 128); - - octets = 1 + 16 - prefixlen / 8; - RETERR(mem_tobuffer(target, sr.base, octets)); - isc_region_consume(&sr, octets); - - if (prefixlen == 0) - return (DNS_R_SUCCESS); - - dns_name_init(&name, NULL); - dns_name_fromregion(&name, &sr); - return (dns_name_towire(&name, cctx, target)); -} - -static int -compare_in_a6(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - int result; - unsigned char prefixlen; - unsigned char octets; - dns_name_t name1; - dns_name_t name2; - isc_region_t region1; - isc_region_t region2; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 38); - REQUIRE(rdata1->class == 1); - - dns_rdata_toregion(rdata1, ®ion1); - dns_rdata_toregion(rdata2, ®ion2); - prefixlen = MAX(region1.base[0], region2.base[0]); - octets = 1 + 16 - prefixlen / 8; - - result = memcmp(region1.base, region2.base, octets); - if (result != 0) - result = (result < 0) ? -1 : 1; - - isc_region_consume(®ion1, octets); - isc_region_consume(®ion2, octets); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - return (dns_name_rdatacompare(&name1, &name2)); -} - -static dns_result_t -fromstruct_in_a6(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 1); - REQUIRE(class == 1); - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_in_a6(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 38); - REQUIRE(rdata->class == 1); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_IN_1_A6_38_H */ diff --git a/lib/dns/rdata/in_1/a_1.h b/lib/dns/rdata/in_1/a_1.h index 91c76d897f..4b007eb711 100644 --- a/lib/dns/rdata/in_1/a_1.h +++ b/lib/dns/rdata/in_1/a_1.h @@ -15,150 +15,17 @@ * SOFTWARE. */ - /* $Id: a_1.h,v 1.12 1999/02/16 22:42:31 marka Exp $ */ + /* $Id: a_1.h,v 1.13 1999/05/05 01:55:12 marka Exp $ */ #ifndef RDATA_IN_1_A_1_H #define RDATA_IN_1_A_1_H -#include +typedef struct dns_rdata_in_a { + dns_rdataclass_t rdclass; /* host order */ + dns_rdatatype_t rdtype; /* host order */ + ISC_LINK(void) link; + isc_mem_t *mctx; + isc_uint32_t address; /* network order */ +} dns_rdata_in_a_t; -#include -#include - -#include -#include - -#include - -static dns_result_t -fromtext_in_a(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - struct in_addr addr; - isc_region_t region; - - REQUIRE(type == 1); - REQUIRE(class == 1); - - origin = origin; /*unused*/ - downcase = downcase; /*unused*/ - - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - - if (isc_inet_aton(token.value.as_pointer, &addr) != 1) - return (DNS_R_BADDOTTEDQUAD); - isc_buffer_available(target, ®ion); - if (region.length < 4) - return (DNS_R_NOSPACE); - memcpy(region.base, &addr, 4); - isc_buffer_add(target, 4); - return (DNS_R_SUCCESS); -} - -static dns_result_t -totext_in_a(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - - REQUIRE(rdata->type == 1); - REQUIRE(rdata->class == 1); - REQUIRE(rdata->length == 4); - - origin = origin; /* unused */ - - isc_buffer_available(target, ®ion); - if (isc_inet_ntop(AF_INET, rdata->data, - (char *)region.base, region.length) == NULL) - return (DNS_R_NOSPACE); - - isc_buffer_add(target, strlen((char *)region.base)); - return (DNS_R_SUCCESS); -} - -static dns_result_t -fromwire_in_a(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_region_t sregion; - isc_region_t tregion; - - REQUIRE(type == 1); - REQUIRE(class == 1); - - dctx = dctx; /* unused */ - downcase = downcase; /* unused */ - - - isc_buffer_active(source, &sregion); - isc_buffer_available(target, &tregion); - if (sregion.length < 4) - return (DNS_R_UNEXPECTEDEND); - if (tregion.length < 4) - return (DNS_R_NOSPACE); - - memcpy(tregion.base, sregion.base, 4); - isc_buffer_forward(source, 4); - isc_buffer_add(target, 4); - return (DNS_R_SUCCESS); -} - -static dns_result_t -towire_in_a(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - isc_region_t region; - - REQUIRE(rdata->type == 1); - REQUIRE(rdata->class == 1); - - cctx = cctx; /*unused*/ - - isc_buffer_available(target, ®ion); - if (region.length < rdata->length) - return (DNS_R_NOSPACE); - memcpy(region.base, rdata->data, rdata->length); - isc_buffer_add(target, 4); - return (DNS_R_SUCCESS); -} - -static int -compare_in_a(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - int result; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->type); - REQUIRE(rdata1->type == 1); - REQUIRE(rdata1->class == 1); - - result = memcmp(rdata1->data, rdata2->data, 4); - if (result != 0) - result = (result < 0) ? -1 : 1; - - return (result); -} - -static dns_result_t -fromstruct_in_a(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 1); - REQUIRE(class == 1); - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_in_a(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 1); - REQUIRE(rdata->class == 1); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} -#endif /* RDATA_IN_1_A_1_H */ +#endif RDATA_IN_1_A_1_H diff --git a/lib/dns/rdata/in_1/aaaa_28.h b/lib/dns/rdata/in_1/aaaa_28.h index bcfe0f7597..b072a3a15d 100644 --- a/lib/dns/rdata/in_1/aaaa_28.h +++ b/lib/dns/rdata/in_1/aaaa_28.h @@ -15,152 +15,10 @@ * SOFTWARE. */ - /* $Id: aaaa_28.h,v 1.6 1999/02/16 22:42:31 marka Exp $ */ + /* $Id: aaaa_28.h,v 1.7 1999/05/05 01:55:12 marka Exp $ */ /* RFC 1886 */ #ifndef RDATA_IN_1_AAAA_28_H #define RDATA_IN_1_AAAA_28_H - -#include - -#include -#include - -#include -#include - -#include - -static dns_result_t -fromtext_in_aaaa(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - unsigned char addr[16]; - isc_region_t region; - - REQUIRE(type == 28); - REQUIRE(class == 1); - - origin = origin; /*unused*/ - downcase = downcase; /*unused*/ - - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - - if (isc_inet_pton(AF_INET6, token.value.as_pointer, addr) != 1) - return (DNS_R_BADAAAA); - isc_buffer_available(target, ®ion); - if (region.length < 16) - return (DNS_R_NOSPACE); - memcpy(region.base, addr, 16); - isc_buffer_add(target, 16); - return (DNS_R_SUCCESS); -} - -static dns_result_t -totext_in_aaaa(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - - REQUIRE(rdata->type == 28); - REQUIRE(rdata->class == 1); - REQUIRE(rdata->length == 16); - - origin = origin; /* unused */ - - isc_buffer_available(target, ®ion); - if (isc_inet_ntop(AF_INET6, rdata->data, - (char *)region.base, region.length) == NULL) - return (DNS_R_NOSPACE); - - isc_buffer_add(target, strlen((char *)region.base)); - return (DNS_R_SUCCESS); -} - -static dns_result_t -fromwire_in_aaaa(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_region_t sregion; - isc_region_t tregion; - - REQUIRE(type == 28); - REQUIRE(class == 1); - - dctx = dctx; /* unused */ - downcase = downcase; /* unused */ - - - isc_buffer_active(source, &sregion); - isc_buffer_available(target, &tregion); - if (sregion.length < 16) - return (DNS_R_UNEXPECTEDEND); - if (tregion.length < 16) - return (DNS_R_NOSPACE); - - memcpy(tregion.base, sregion.base, 16); - isc_buffer_forward(source, 16); - isc_buffer_add(target, 16); - return (DNS_R_SUCCESS); -} - -static dns_result_t -towire_in_aaaa(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - isc_region_t region; - - REQUIRE(rdata->type == 28); - REQUIRE(rdata->class == 1); - - cctx = cctx; /*unused*/ - - isc_buffer_available(target, ®ion); - if (region.length < rdata->length) - return (DNS_R_NOSPACE); - memcpy(region.base, rdata->data, rdata->length); - isc_buffer_add(target, 16); - return (DNS_R_SUCCESS); -} - -static int -compare_in_aaaa(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - int result; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 28); - REQUIRE(rdata1->class == 1); - - result = memcmp(rdata1->data, rdata2->data, 16); - if (result != 0) - result = (result < 0) ? -1 : 1; - - return (result); -} - -static dns_result_t -fromstruct_in_aaaa(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 1); - REQUIRE(class == 1); - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_in_aaaa(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 28); - REQUIRE(rdata->class == 1); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_IN_1_AAAA_28_H */ diff --git a/lib/dns/rdata/in_1/kx_36.h b/lib/dns/rdata/in_1/kx_36.h index e2fb4ea78c..96ae174d46 100644 --- a/lib/dns/rdata/in_1/kx_36.h +++ b/lib/dns/rdata/in_1/kx_36.h @@ -15,166 +15,10 @@ * SOFTWARE. */ - /* $Id: kx_36.h,v 1.5 1999/02/24 06:31:35 marka Exp $ */ + /* $Id: kx_36.h,v 1.6 1999/05/05 01:55:12 marka Exp $ */ /* RFC 2230 */ #ifndef RDATA_GENERIC_KX_36_H #define RDATA_GENERIC_KX_36_H - -static dns_result_t -fromtext_in_kx(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - dns_name_t name; - isc_buffer_t buffer; - - REQUIRE(type == 36); - REQUIRE(class == 1); - - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - RETERR(uint16_tobuffer(token.value.as_ulong, target)); - - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - return (dns_name_fromtext(&name, &buffer, origin, downcase, target)); -} - -static dns_result_t -totext_in_kx(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - dns_name_t name; - dns_name_t prefix; - isc_boolean_t sub; - char buf[sizeof "64000"]; - unsigned short num; - - REQUIRE(rdata->type == 36); - REQUIRE(rdata->class == 1); - - dns_name_init(&name, NULL); - dns_name_init(&prefix, NULL); - - dns_rdata_toregion(rdata, ®ion); - num = uint16_fromregion(®ion); - isc_region_consume(®ion, 2); - sprintf(buf, "%u", num); - RETERR(str_totext(buf, target)); - RETERR(str_totext(" ", target)); - - dns_name_fromregion(&name, ®ion); - sub = name_prefix(&name, origin, &prefix); - return(dns_name_totext(&prefix, sub, target)); -} - -static dns_result_t -fromwire_in_kx(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - dns_name_t name; - isc_region_t sregion; - - REQUIRE(type == 36); - REQUIRE(class == 1); - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_NONE); - - dns_name_init(&name, NULL); - - isc_buffer_active(source, &sregion); - if (sregion.length < 2) - return (DNS_R_UNEXPECTEDEND); - RETERR(mem_tobuffer(target, sregion.base, 2)); - isc_buffer_forward(source, 2); - return (dns_name_fromwire(&name, source, dctx, downcase, target)); -} - -static dns_result_t -towire_in_kx(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - dns_name_t name; - isc_region_t region; - - REQUIRE(rdata->type == 36); - REQUIRE(rdata->class == 1); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); - - dns_rdata_toregion(rdata, ®ion); - RETERR(mem_tobuffer(target, region.base, 2)); - isc_region_consume(®ion, 2); - - dns_name_init(&name, NULL); - dns_name_fromregion(&name, ®ion); - - return (dns_name_towire(&name, cctx, target)); -} - -static int -compare_in_kx(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - dns_name_t name1; - dns_name_t name2; - isc_region_t region1; - isc_region_t region2; - int result; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 36); - REQUIRE(rdata1->class == 1); - - result = memcmp(rdata1->data, rdata2->data, 2); - if (result != 0) - return (result < 0 ? -1 : 1); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_rdata_toregion(rdata1, ®ion1); - dns_rdata_toregion(rdata2, ®ion2); - - isc_region_consume(®ion1, 2); - isc_region_consume(®ion2, 2); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - return (dns_name_rdatacompare(&name1, &name2)); -} - -static dns_result_t -fromstruct_in_kx(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 36); - REQUIRE(class == 1); - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_in_kx(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 36); - REQUIRE(rdata->class == 1); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_GENERIC_KX_15_H */ diff --git a/lib/dns/rdata/in_1/naptr_35.h b/lib/dns/rdata/in_1/naptr_35.h index 7d8a5c6e32..221d7ce88a 100644 --- a/lib/dns/rdata/in_1/naptr_35.h +++ b/lib/dns/rdata/in_1/naptr_35.h @@ -15,252 +15,10 @@ * SOFTWARE. */ - /* $Id: naptr_35.h,v 1.5 1999/02/24 06:31:35 marka Exp $ */ + /* $Id: naptr_35.h,v 1.6 1999/05/05 01:55:12 marka Exp $ */ /* RFC 2168 */ #ifndef RDATA_IN_1_NAPTR_35_H #define RDATA_IN_1_NAPTR_35_H - -static dns_result_t -fromtext_in_naptr(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - dns_name_t name; - isc_buffer_t buffer; - - REQUIRE(type == 35); - REQUIRE(class == 1); - - /* priority */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - RETERR(uint16_tobuffer(token.value.as_ulong, target)); - - /* weight */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - RETERR(uint16_tobuffer(token.value.as_ulong, target)); - - /* flags */ - RETERR(gettoken(lexer, &token, isc_tokentype_qstring, ISC_FALSE)); - RETERR(txt_fromtext(&token.value.as_textregion, target)); - - /* service */ - RETERR(gettoken(lexer, &token, isc_tokentype_qstring, ISC_FALSE)); - RETERR(txt_fromtext(&token.value.as_textregion, target)); - - /* regexp */ - RETERR(gettoken(lexer, &token, isc_tokentype_qstring, ISC_FALSE)); - RETERR(txt_fromtext(&token.value.as_textregion, target)); - - /* replacement */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - return (dns_name_fromtext(&name, &buffer, origin, downcase, target)); -} - -static dns_result_t -totext_in_naptr(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - dns_name_t name; - dns_name_t prefix; - isc_boolean_t sub; - char buf[sizeof "64000"]; - unsigned short num; - - REQUIRE(rdata->type == 35); - REQUIRE(rdata->class == 1); - - dns_name_init(&name, NULL); - dns_name_init(&prefix, NULL); - - /* priority */ - dns_rdata_toregion(rdata, ®ion); - num = uint16_fromregion(®ion); - isc_region_consume(®ion, 2); - sprintf(buf, "%u", num); - RETERR(str_totext(buf, target)); - RETERR(str_totext(" ", target)); - - /* weight */ - num = uint16_fromregion(®ion); - isc_region_consume(®ion, 2); - sprintf(buf, "%u", num); - RETERR(str_totext(buf, target)); - RETERR(str_totext(" ", target)); - - /* flags */ - RETERR(txt_totext(®ion, target)); - RETERR(str_totext(" ", target)); - - /* service */ - RETERR(txt_totext(®ion, target)); - RETERR(str_totext(" ", target)); - - /* regexp */ - RETERR(txt_totext(®ion, target)); - RETERR(str_totext(" ", target)); - - /* replacement */ - dns_name_fromregion(&name, ®ion); - sub = name_prefix(&name, origin, &prefix); - return(dns_name_totext(&prefix, sub, target)); -} - -static dns_result_t -fromwire_in_naptr(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - dns_name_t name; - isc_region_t sr; - - REQUIRE(type == 35); - REQUIRE(class == 1); - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_NONE); - - dns_name_init(&name, NULL); - - /* priority, weight */ - isc_buffer_active(source, &sr); - if (sr.length < 4) - return (DNS_R_UNEXPECTEDEND); - RETERR(mem_tobuffer(target, sr.base, 4)); - isc_buffer_forward(source, 4); - - /* flags */ - RETERR(txt_fromwire(source, target)); - - /* service */ - RETERR(txt_fromwire(source, target)); - - /* regexp */ - RETERR(txt_fromwire(source, target)); - - /* replacement */ - return (dns_name_fromwire(&name, source, dctx, downcase, target)); -} - -static dns_result_t -towire_in_naptr(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - dns_name_t name; - isc_region_t sr; - - REQUIRE(rdata->type == 35); - REQUIRE(rdata->class == 1); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); - - /* priority, weight */ - dns_rdata_toregion(rdata, &sr); - RETERR(mem_tobuffer(target, sr.base, 4)); - isc_region_consume(&sr, 4); - - /* flags */ - RETERR(mem_tobuffer(target, sr.base, sr.base[0] + 1)); - isc_region_consume(&sr, sr.base[0] + 1); - - /* service */ - RETERR(mem_tobuffer(target, sr.base, sr.base[0] + 1)); - isc_region_consume(&sr, sr.base[0] + 1); - - /* regexp */ - RETERR(mem_tobuffer(target, sr.base, sr.base[0] + 1)); - isc_region_consume(&sr, sr.base[0] + 1); - - /* replacement */ - dns_name_init(&name, NULL); - dns_name_fromregion(&name, &sr); - return (dns_name_towire(&name, cctx, target)); -} - -static int -compare_in_naptr(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - dns_name_t name1; - dns_name_t name2; - isc_region_t region1; - isc_region_t region2; - int result; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 35); - REQUIRE(rdata1->class == 1); - - dns_rdata_toregion(rdata1, ®ion1); - dns_rdata_toregion(rdata2, ®ion2); - - /* priority, weight */ - result = memcmp(region1.base, region2.base, 4); - if (result != 0) - return (result < 0 ? -1 : 1); - isc_region_consume(®ion1, 4); - isc_region_consume(®ion2, 4); - - /* flags */ - result = memcmp(region1.base, region2.base, region1.base[0] + 1); - if (result != 0) - return (result < 0 ? -1 : 1); - isc_region_consume(®ion1, region1.base[0] + 1); - isc_region_consume(®ion2, region2.base[0] + 1); - - /* service */ - result = memcmp(region1.base, region2.base, region1.base[0] + 1); - if (result != 0) - return (result < 0 ? -1 : 1); - isc_region_consume(®ion1, region1.base[0] + 1); - isc_region_consume(®ion2, region2.base[0] + 1); - - /* regexp */ - result = memcmp(region1.base, region2.base, region1.base[0] + 1); - if (result != 0) - return (result < 0 ? -1 : 1); - isc_region_consume(®ion1, region1.base[0] + 1); - isc_region_consume(®ion2, region2.base[0] + 1); - - /* replacement */ - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - return (dns_name_rdatacompare(&name1, &name2)); -} - -static dns_result_t -fromstruct_in_naptr(dns_rdataclass_t class, dns_rdatatype_t type, - void *source, isc_buffer_t *target) -{ - - REQUIRE(type == 35); - REQUIRE(class == 1); - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_in_naptr(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 35); - REQUIRE(rdata->class == 1); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_IN_1_NAPTR_35_H */ diff --git a/lib/dns/rdata/in_1/nsap-ptr_23.h b/lib/dns/rdata/in_1/nsap-ptr_23.h index a22af93e0e..a69689c7e0 100644 --- a/lib/dns/rdata/in_1/nsap-ptr_23.h +++ b/lib/dns/rdata/in_1/nsap-ptr_23.h @@ -15,144 +15,10 @@ * SOFTWARE. */ - /* $Id: nsap-ptr_23.h,v 1.4 1999/02/24 06:31:35 marka Exp $ */ + /* $Id: nsap-ptr_23.h,v 1.5 1999/05/05 01:55:12 marka Exp $ */ /* RFC 1348 */ #ifndef RDATA_IN_1_NSAP_PTR_23_H #define RDATA_IN_1_NSAP_PTR_23_H - -static dns_result_t -fromtext_in_nsap_ptr(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - dns_name_t name; - isc_buffer_t buffer; - - REQUIRE(type == 23); - REQUIRE(class == 1); - - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - return (dns_name_fromtext(&name, &buffer, origin, downcase, target)); -} - -static dns_result_t -totext_in_nsap_ptr(dns_rdata_t *rdata, dns_name_t *origin, - isc_buffer_t *target) -{ - isc_region_t region; - dns_name_t name; - dns_name_t prefix; - isc_boolean_t sub; - - REQUIRE(rdata->type == 23); - REQUIRE(rdata->class == 1); - - dns_name_init(&name, NULL); - dns_name_init(&prefix, NULL); - - dns_rdata_toregion(rdata, ®ion); - dns_name_fromregion(&name, ®ion); - - sub = name_prefix(&name, origin, &prefix); - - return (dns_name_totext(&prefix, sub, target)); -} - -static dns_result_t -fromwire_in_nsap_ptr(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - dns_name_t name; - - REQUIRE(type == 23); - REQUIRE(class == 1); - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_NONE); - - dns_name_init(&name, NULL); - return (dns_name_fromwire(&name, source, dctx, downcase, target)); -} - -static dns_result_t -towire_in_nsap_ptr(dns_rdata_t *rdata, dns_compress_t *cctx, - isc_buffer_t *target) -{ - dns_name_t name; - isc_region_t region; - - REQUIRE(rdata->type == 23); - REQUIRE(rdata->class == 1); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); - - dns_name_init(&name, NULL); - dns_rdata_toregion(rdata, ®ion); - dns_name_fromregion(&name, ®ion); - - return (dns_name_towire(&name, cctx, target)); -} - -static int -compare_in_nsap_ptr(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - dns_name_t name1; - dns_name_t name2; - isc_region_t region1; - isc_region_t region2; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 23); - REQUIRE(rdata1->class == 1); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_rdata_toregion(rdata1, ®ion1); - dns_rdata_toregion(rdata2, ®ion2); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - return (dns_name_rdatacompare(&name1, &name2)); -} - -static dns_result_t -fromstruct_in_nsap_ptr(dns_rdataclass_t class, dns_rdatatype_t type, - void *source, isc_buffer_t *target) -{ - - REQUIRE(type == 23); - REQUIRE(class == 1); - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_in_nsap_ptr(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 23); - REQUIRE(rdata->class == 1); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_IN_1_NSAP_PTR_23_H */ diff --git a/lib/dns/rdata/in_1/nsap_22.h b/lib/dns/rdata/in_1/nsap_22.h index 2fd01aa3fd..948ee2d497 100644 --- a/lib/dns/rdata/in_1/nsap_22.h +++ b/lib/dns/rdata/in_1/nsap_22.h @@ -15,152 +15,10 @@ * SOFTWARE. */ - /* $Id: nsap_22.h,v 1.2 1999/02/16 22:42:32 marka Exp $ */ + /* $Id: nsap_22.h,v 1.3 1999/05/05 01:55:12 marka Exp $ */ /* RFC 1706 */ #ifndef RDATA_IN_1_NSAP_22_H #define RDATA_IN_1_NSAP_22_H - -#include - -static dns_result_t -fromtext_in_nsap(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) { - isc_token_t token; - isc_textregion_t *sr; - int n; - int digits; - unsigned char c; - - REQUIRE(type == 22); - REQUIRE(class == 1); - - origin = origin; /*unused*/ - downcase = downcase; /*unused*/ - - /* 0x */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - sr = &token.value.as_textregion; - if (sr->length < 2) - return (DNS_R_UNEXPECTEDEND); - if (sr->base[0] != '0' || (sr->base[1] != 'x' && sr->base[1] != 'X')) - return (DNS_R_SYNTAX); - isc_textregion_consume(sr, 2); - digits = 0; - n = 0; - while (sr->length > 1) { - if (sr->base[0] == '.') { - isc_textregion_consume(sr, 1); - continue; - } - if ((n = hexvalue(sr->base[0])) == -1) - return (DNS_R_SYNTAX); - c <<= 4; - c += n; - if (++digits == 2) { - RETERR(mem_tobuffer(target, &n, 1)); - digits = 0; - } - } - if (digits) { - c <<= 4; - return (mem_tobuffer(target, &c, 1)); - } - return (DNS_R_SUCCESS); -} - -static dns_result_t -totext_in_nsap(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - char buf[sizeof "xx"]; - - REQUIRE(rdata->type == 22); - REQUIRE(rdata->class == 1); - REQUIRE(rdata->length == 4); - - origin = origin; /* unused */ - - dns_rdata_toregion(rdata, ®ion); - RETERR(str_totext("0x", target)); - while (region.length) { - sprintf(buf, "%02x", region.base[0]); - isc_region_consume(®ion, 1); - RETERR(str_totext(buf, target)); - } - return (DNS_R_SUCCESS); -} - -static dns_result_t -fromwire_in_nsap(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_region_t region; - - REQUIRE(type == 22); - REQUIRE(class == 1); - - dctx = dctx; /* unused */ - downcase = downcase; /* unused */ - - - isc_buffer_active(source, ®ion); - if (region.length < 1) - return (DNS_R_UNEXPECTEDEND); - - return (mem_tobuffer(target, region.base, region.length)); -} - -static dns_result_t -towire_in_nsap(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - - REQUIRE(rdata->type == 22); - REQUIRE(rdata->class == 1); - - cctx = cctx; /*unused*/ - - return (mem_tobuffer(target, rdata->data, rdata->length)); -} - -static int -compare_in_nsap(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - isc_region_t r1; - isc_region_t r2; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->type); - REQUIRE(rdata1->type == 22); - REQUIRE(rdata1->class == 1); - - dns_rdata_toregion(rdata1, &r1); - dns_rdata_toregion(rdata2, &r2); - return (compare_region(&r1, &r2)); -} - -static dns_result_t -fromstruct_in_nsap(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 22); - REQUIRE(class == 1); - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_in_nsap(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 22); - REQUIRE(rdata->class == 1); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_IN_1_NSAP_22_H */ diff --git a/lib/dns/rdata/in_1/px_26.h b/lib/dns/rdata/in_1/px_26.h index b0ecf0230a..48f907b5ee 100644 --- a/lib/dns/rdata/in_1/px_26.h +++ b/lib/dns/rdata/in_1/px_26.h @@ -15,208 +15,10 @@ * SOFTWARE. */ - /* $Id: px_26.h,v 1.4 1999/02/24 06:31:35 marka Exp $ */ + /* $Id: px_26.h,v 1.5 1999/05/05 01:55:13 marka Exp $ */ /* RFC 2163 */ #ifndef RDATA_IN_1_PX_26_H #define RDATA_IN_1_PX_26_H - -static dns_result_t -fromtext_in_px(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - dns_name_t name; - isc_buffer_t buffer; - - REQUIRE(type == 26); - REQUIRE(class == 1); - - /* preference */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - RETERR(uint16_tobuffer(token.value.as_ulong, target)); - - /* MAP822 */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - RETERR(dns_name_fromtext(&name, &buffer, origin, downcase, target)); - - /* MAPX400 */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - return (dns_name_fromtext(&name, &buffer, origin, downcase, target)); -} - -static dns_result_t -totext_in_px(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - dns_name_t name; - dns_name_t prefix; - isc_boolean_t sub; - char buf[sizeof "64000"]; - unsigned short num; - - REQUIRE(rdata->type == 26); - REQUIRE(rdata->class == 1); - - dns_name_init(&name, NULL); - dns_name_init(&prefix, NULL); - - /* preference */ - dns_rdata_toregion(rdata, ®ion); - num = uint16_fromregion(®ion); - isc_region_consume(®ion, 2); - sprintf(buf, "%u", num); - RETERR(str_totext(buf, target)); - RETERR(str_totext(" ", target)); - - /* MAP822 */ - dns_name_fromregion(&name, ®ion); - sub = name_prefix(&name, origin, &prefix); - isc_region_consume(®ion, name_length(&name)); - RETERR(dns_name_totext(&prefix, sub, target)); - RETERR(str_totext(" ", target)); - - /* MAPX400 */ - dns_name_fromregion(&name, ®ion); - sub = name_prefix(&name, origin, &prefix); - return(dns_name_totext(&prefix, sub, target)); -} - -static dns_result_t -fromwire_in_px(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - dns_name_t name; - isc_region_t sregion; - - REQUIRE(type == 26); - REQUIRE(class == 1); - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_NONE); - - dns_name_init(&name, NULL); - - /* preference */ - isc_buffer_active(source, &sregion); - if (sregion.length < 2) - return (DNS_R_UNEXPECTEDEND); - RETERR(mem_tobuffer(target, sregion.base, 2)); - isc_buffer_forward(source, 2); - - /* MAP822 */ - RETERR(dns_name_fromwire(&name, source, dctx, downcase, target)); - - /* MAPX400 */ - return (dns_name_fromwire(&name, source, dctx, downcase, target)); -} - -static dns_result_t -towire_in_px(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - dns_name_t name; - isc_region_t region; - - REQUIRE(rdata->type == 26); - REQUIRE(rdata->class == 1); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); - - /* preference */ - dns_rdata_toregion(rdata, ®ion); - RETERR(mem_tobuffer(target, region.base, 2)); - isc_region_consume(®ion, 2); - - /* MAP822 */ - dns_name_init(&name, NULL); - dns_name_fromregion(&name, ®ion); - RETERR(dns_name_towire(&name, cctx, target)); - isc_region_consume(®ion, name_length(&name)); - - /* MAPX400 */ - dns_name_init(&name, NULL); - dns_name_fromregion(&name, ®ion); - return (dns_name_towire(&name, cctx, target)); -} - -static int -compare_in_px(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - dns_name_t name1; - dns_name_t name2; - isc_region_t region1; - isc_region_t region2; - int result; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 26); - REQUIRE(rdata1->class == 1); - - result = memcmp(rdata1->data, rdata2->data, 2); - if (result != 0) - return (result < 0 ? -1 : 1); - - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_rdata_toregion(rdata1, ®ion1); - dns_rdata_toregion(rdata2, ®ion2); - - isc_region_consume(®ion1, 2); - isc_region_consume(®ion2, 2); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - result = dns_name_rdatacompare(&name1, &name2); - if (result != 0) - return (result); - - isc_region_consume(®ion1, name_length(&name1)); - isc_region_consume(®ion2, name_length(&name2)); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - return (dns_name_rdatacompare(&name1, &name2)); -} - -static dns_result_t -fromstruct_in_px(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 26); - REQUIRE(class == 1); - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_in_px(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 26); - REQUIRE(rdata->class == 1); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_IN_1_PX_26_H */ diff --git a/lib/dns/rdata/in_1/srv_33.h b/lib/dns/rdata/in_1/srv_33.h index 917360ea66..ed3555d71c 100644 --- a/lib/dns/rdata/in_1/srv_33.h +++ b/lib/dns/rdata/in_1/srv_33.h @@ -15,197 +15,10 @@ * SOFTWARE. */ - /* $Id: srv_33.h,v 1.4 1999/02/24 06:31:35 marka Exp $ */ + /* $Id: srv_33.h,v 1.5 1999/05/05 01:55:13 marka Exp $ */ /* RFC 2052 bis */ #ifndef RDATA_IN_1_SRV_33_H #define RDATA_IN_1_SRV_33_H - -static dns_result_t -fromtext_in_srv(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - dns_name_t name; - isc_buffer_t buffer; - - REQUIRE(type == 33); - REQUIRE(class == 1); - - /* priority */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - RETERR(uint16_tobuffer(token.value.as_ulong, target)); - - /* weight */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - RETERR(uint16_tobuffer(token.value.as_ulong, target)); - - /* port */ - RETERR(gettoken(lexer, &token, isc_tokentype_number, ISC_FALSE)); - RETERR(uint16_tobuffer(token.value.as_ulong, target)); - - /* target */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - dns_name_init(&name, NULL); - buffer_fromregion(&buffer, &token.value.as_region, - ISC_BUFFERTYPE_TEXT); - origin = (origin != NULL) ? origin : dns_rootname; - return (dns_name_fromtext(&name, &buffer, origin, downcase, target)); -} - -static dns_result_t -totext_in_srv(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t region; - dns_name_t name; - dns_name_t prefix; - isc_boolean_t sub; - char buf[sizeof "64000"]; - unsigned short num; - - REQUIRE(rdata->type == 33); - REQUIRE(rdata->class == 1); - - dns_name_init(&name, NULL); - dns_name_init(&prefix, NULL); - - /* priority */ - dns_rdata_toregion(rdata, ®ion); - num = uint16_fromregion(®ion); - isc_region_consume(®ion, 2); - sprintf(buf, "%u", num); - RETERR(str_totext(buf, target)); - RETERR(str_totext(" ", target)); - - /* weight */ - num = uint16_fromregion(®ion); - isc_region_consume(®ion, 2); - sprintf(buf, "%u", num); - RETERR(str_totext(buf, target)); - RETERR(str_totext(" ", target)); - - /* port */ - num = uint16_fromregion(®ion); - isc_region_consume(®ion, 2); - sprintf(buf, "%u", num); - RETERR(str_totext(buf, target)); - RETERR(str_totext(" ", target)); - - /* target */ - dns_name_fromregion(&name, ®ion); - sub = name_prefix(&name, origin, &prefix); - return(dns_name_totext(&prefix, sub, target)); -} - -static dns_result_t -fromwire_in_srv(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - dns_name_t name; - isc_region_t sr; - - REQUIRE(type == 33); - REQUIRE(class == 1); - - if (dns_decompress_edns(dctx) >= 1 || !dns_decompress_strict(dctx)) - dns_decompress_setmethods(dctx, DNS_COMPRESS_ALL); - else - dns_decompress_setmethods(dctx, DNS_COMPRESS_NONE); - - dns_name_init(&name, NULL); - - /* priority, weight, port */ - isc_buffer_active(source, &sr); - if (sr.length < 6) - return (DNS_R_UNEXPECTEDEND); - RETERR(mem_tobuffer(target, sr.base, 6)); - isc_buffer_forward(source, 6); - - /* target */ - return (dns_name_fromwire(&name, source, dctx, downcase, target)); -} - -static dns_result_t -towire_in_srv(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - dns_name_t name; - isc_region_t sr; - - REQUIRE(rdata->type == 33); - - if (dns_compress_getedns(cctx) >= 1) - dns_compress_setmethods(cctx, DNS_COMPRESS_ALL); - else - dns_compress_setmethods(cctx, DNS_COMPRESS_NONE); - - /* priority, weight, port */ - dns_rdata_toregion(rdata, &sr); - RETERR(mem_tobuffer(target, sr.base, 6)); - isc_region_consume(&sr, 6); - - /* target */ - dns_name_init(&name, NULL); - dns_name_fromregion(&name, &sr); - return (dns_name_towire(&name, cctx, target)); -} - -static int -compare_in_srv(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - dns_name_t name1; - dns_name_t name2; - isc_region_t region1; - isc_region_t region2; - int result; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 33); - REQUIRE(rdata1->class == 1); - - /* priority, weight, port */ - result = memcmp(rdata1->data, rdata2->data, 6); - if (result != 0) - return (result < 0 ? -1 : 1); - - /* target */ - dns_name_init(&name1, NULL); - dns_name_init(&name2, NULL); - - dns_rdata_toregion(rdata1, ®ion1); - dns_rdata_toregion(rdata2, ®ion2); - - isc_region_consume(®ion1, 6); - isc_region_consume(®ion2, 6); - - dns_name_fromregion(&name1, ®ion1); - dns_name_fromregion(&name2, ®ion2); - - return (dns_name_rdatacompare(&name1, &name2)); -} - -static dns_result_t -fromstruct_in_srv(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - REQUIRE(type == 33); - REQUIRE(class == 1); - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_in_srv(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 33); - REQUIRE(rdata->class == 1); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_IN_1_SRV_33_H */ diff --git a/lib/dns/rdata/in_1/wks_11.h b/lib/dns/rdata/in_1/wks_11.h index dfd0397777..31499b2db4 100644 --- a/lib/dns/rdata/in_1/wks_11.h +++ b/lib/dns/rdata/in_1/wks_11.h @@ -15,224 +15,8 @@ * SOFTWARE. */ - /* $Id: wks_11.h,v 1.8 1999/02/16 22:42:33 marka Exp $ */ + /* $Id: wks_11.h,v 1.9 1999/05/05 01:55:13 marka Exp $ */ #ifndef RDATA_IN_1_WKS_11_H #define RDATA_IN_1_WKS_11_H - -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -static dns_result_t -fromtext_in_wks(dns_rdataclass_t class, dns_rdatatype_t type, - isc_lex_t *lexer, dns_name_t *origin, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_token_t token; - isc_region_t region; - struct in_addr addr; - struct protoent *pe; - struct servent *se; - char *e; - long proto; - unsigned char bm[8*1024]; /* 64k bits */ - long port; - long maxport = -1; - char *ps = NULL; - unsigned int n; - - REQUIRE(type == 11); - REQUIRE(class == 1); - - origin = origin; /*unused*/ - downcase = downcase; /*unused*/ - - /* IPv4 dotted quad */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - - isc_buffer_available(target, ®ion); - if (isc_inet_aton(token.value.as_pointer, &addr) != 1) - return (DNS_R_BADDOTTEDQUAD); - if (region.length < 4) - return (DNS_R_NOSPACE); - memcpy(region.base, &addr, 4); - isc_buffer_add(target, 4); - - /* protocol */ - RETERR(gettoken(lexer, &token, isc_tokentype_string, ISC_FALSE)); - - proto = strtol(token.value.as_pointer, &e, 10); - if (*e == 0) - (void)NULL; - else if ((pe = getprotobyname(token.value.as_pointer)) != NULL) - proto = pe->p_proto; - else - return (DNS_R_UNEXPECTED); - if (proto < 0 || proto > 0xffff) - return (DNS_R_RANGE); - - if (proto == IPPROTO_TCP) - ps = "tcp"; - else if (proto == IPPROTO_UDP) - ps = "udp"; - - RETERR(uint16_tobuffer(proto, target)); - - memset(bm, 0, sizeof bm); - while (1) { - RETERR(gettoken(lexer, &token, isc_tokentype_string, - ISC_TRUE)); - if (token.type != isc_tokentype_string) - break; - port = strtol(token.value.as_pointer, &e, 10); - if (*e == 0) - (void) NULL; - else if ((se = getservbyname(token.value.as_pointer, ps)) - != NULL) - port = ntohs(se->s_port); - else - return (DNS_R_UNEXPECTED); - if (port < 0 || port > 0xffff) - return (DNS_R_RANGE); - if (port > maxport) - maxport = port; - bm[port/8] |= (0x80>>(port%8)); - } - isc_lex_ungettoken(lexer, &token); - n = (maxport + 8) / 8; - return (mem_tobuffer(target, bm, n)); -} - -static dns_result_t -totext_in_wks(dns_rdata_t *rdata, dns_name_t *origin, isc_buffer_t *target) { - isc_region_t sr; - isc_region_t tr; - unsigned short proto; - char buf[sizeof "65535"]; - unsigned int i, j; - - REQUIRE(rdata->type == 11); - REQUIRE(rdata->class == 1); - - origin = origin; - dns_rdata_toregion(rdata, &sr); - isc_buffer_available(target, &tr); - if (isc_inet_ntop(AF_INET, sr.base, (char *)tr.base, tr.length) - == NULL) - return (DNS_R_NOSPACE); - isc_buffer_add(target, strlen((char *)tr.base)); - isc_region_consume(&sr, 4); - - proto = uint16_fromregion(&sr); - sprintf(buf, "%u", proto); - RETERR(str_totext(" ", target)); - RETERR(str_totext(buf, target)); - isc_region_consume(&sr, 2); - RETERR(str_totext(" (", target)); - - for (i = 0 ; i < sr.length ; i++) { - if (sr.base[i] != 0) - for (j = 0; j < 8; j++) - if ((sr.base[i] & (0x80>>j)) != 0) { - sprintf(buf, "%u", i * 8 + j); - RETERR(str_totext(" ", target)); - RETERR(str_totext(buf, target)); - } - } - RETERR(str_totext(" )", target)); - return (DNS_R_SUCCESS); -} - -static dns_result_t -fromwire_in_wks(dns_rdataclass_t class, dns_rdatatype_t type, - isc_buffer_t *source, dns_decompress_t *dctx, - isc_boolean_t downcase, isc_buffer_t *target) -{ - isc_region_t sr; - isc_region_t tr; - - REQUIRE(type == 11); - REQUIRE(class == 1); - - dctx = dctx; /*unused*/ - downcase = downcase; /*unused*/ - - isc_buffer_active(source, &sr); - isc_buffer_available(target, &tr); - - if (sr.length < 6) - return (DNS_R_UNEXPECTEDEND); - if (sr.length > 8 * 1024 + 6) - return (DNS_R_EXTRADATA); - if (tr.length < sr.length) - return (DNS_R_NOSPACE); - - memcpy(tr.base, sr.base, sr.length); - isc_buffer_add(target, sr.length); - isc_buffer_forward(source, sr.length); - return (DNS_R_SUCCESS); -} - -static dns_result_t -towire_in_wks(dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target) { - isc_region_t sr; - - REQUIRE(rdata->type == 11); - REQUIRE(rdata->class == 1); - - cctx = cctx; /*unused*/ - - dns_rdata_toregion(rdata, &sr); - return (mem_tobuffer(target, sr.base, sr.length)); -} - -static int -compare_in_wks(dns_rdata_t *rdata1, dns_rdata_t *rdata2) { - isc_region_t r1; - isc_region_t r2; - - REQUIRE(rdata1->type == rdata2->type); - REQUIRE(rdata1->class == rdata2->class); - REQUIRE(rdata1->type == 11); - REQUIRE(rdata1->class == 1); - - dns_rdata_toregion(rdata1, &r1); - dns_rdata_toregion(rdata2, &r2); - return (compare_region(&r1, &r2)); -} - -static dns_result_t -fromstruct_in_wks(dns_rdataclass_t class, dns_rdatatype_t type, void *source, - isc_buffer_t *target) -{ - - - REQUIRE(type == 11); - REQUIRE(class == 1); - - source = source; - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} - -static dns_result_t -tostruct_in_wks(dns_rdata_t *rdata, void *target) { - - REQUIRE(rdata->type == 11); - REQUIRE(rdata->class == 1); - - target = target; - - return (DNS_R_NOTIMPLEMENTED); -} #endif /* RDATA_IN_1_WKS_11_H */