diff --git a/CuteDNS.files b/CuteDNS.files index a09c50bc5a56b7bf38ae3f6baca7189d68c31d4c..c1a6b4428ada4bd5fd0c28d0e8b113fbf030feff 100644 --- a/CuteDNS.files +++ b/CuteDNS.files @@ -66,3 +66,5 @@ src/dnslib/consts.h src/tests/dnslib/dnslib_dname_tests.c src/tests/dnslib/dnslib_rdata_tests.c src/tests/dnslib/dnslib_rrset_tests.c +src/dnslib/descriptor.h +src/dnslib/descriptor.c diff --git a/src/dnslib/descriptor.c b/src/dnslib/descriptor.c index 070bc284117d7017f8caaaf524b91c7ebd7dfc11..91e2cd16aa6323cbfa60d5dc91f7e75a9ca7ccea 100644 --- a/src/dnslib/descriptor.c +++ b/src/dnslib/descriptor.c @@ -61,7 +61,7 @@ static dnslib_rrtype_descriptor_t dnslib_rrtype_descriptors[DNSLIB_RRTYPE_DESCRI { DNSLIB_RDATA_WF_BINARY }, true }, /* 11 */ { DNSLIB_RRTYPE_WKS, "WKS", 2, - { DNSLIB_RDATA_WF_A, DNSLIB_RDATA_WF_BINARY }, true }, + { DNSLIB_RDATA_WF_A, DNSLIB_RDATA_WF_BINARY }, true }, /* 12 */ { DNSLIB_RRTYPE_PTR, "PTR", 1, { DNSLIB_RDATA_WF_COMPRESSED_DNAME }, true }, @@ -75,7 +75,7 @@ static dnslib_rrtype_descriptor_t dnslib_rrtype_descriptors[DNSLIB_RRTYPE_DESCRI { DNSLIB_RRTYPE_MX, "MX", 2, { DNSLIB_RDATA_WF_SHORT, DNSLIB_RDATA_WF_COMPRESSED_DNAME }, true }, /* 16 */ /* This is obscure, but I guess there's no other way */ - { DNSLIB_RRTYPE_TXT, "TXT", MAXRDATALEN, + { DNSLIB_RRTYPE_TXT, "TXT", MAX_RDATA_ITEMS, { DNSLIB_RDATA_WF_TEXT, DNSLIB_RDATA_WF_TEXT, DNSLIB_RDATA_WF_TEXT, DNSLIB_RDATA_WF_TEXT, DNSLIB_RDATA_WF_TEXT, DNSLIB_RDATA_WF_TEXT, DNSLIB_RDATA_WF_TEXT, DNSLIB_RDATA_WF_TEXT, DNSLIB_RDATA_WF_TEXT, DNSLIB_RDATA_WF_TEXT, DNSLIB_RDATA_WF_TEXT, DNSLIB_RDATA_WF_TEXT, @@ -166,7 +166,7 @@ static dnslib_rrtype_descriptor_t dnslib_rrtype_descriptors[DNSLIB_RRTYPE_DESCRI { DNSLIB_RRTYPE_OPT, "OPT", 1, { DNSLIB_RDATA_WF_BINARY }, true }, /* 42 */ - { DNSLIB_RRTYPE_APL, "APL", MAXRDATALEN, + { DNSLIB_RRTYPE_APL, "APL", MAX_RDATA_ITEMS, { DNSLIB_RDATA_WF_APL, DNSLIB_RDATA_WF_APL, DNSLIB_RDATA_WF_APL, DNSLIB_RDATA_WF_APL, DNSLIB_RDATA_WF_APL, DNSLIB_RDATA_WF_APL, DNSLIB_RDATA_WF_APL, DNSLIB_RDATA_WF_APL, DNSLIB_RDATA_WF_APL, DNSLIB_RDATA_WF_APL, DNSLIB_RDATA_WF_APL, DNSLIB_RDATA_WF_APL, @@ -229,7 +229,7 @@ static dnslib_rrtype_descriptor_t dnslib_rrtype_descriptors[DNSLIB_RRTYPE_DESCRI /* There's a GNU extension that works like this: [first ... last] = value */ /* 99 */ - [99] = { DNSLIB_RRTYPE_SPF, "SPF", MAXRDATALEN, + [99] = { DNSLIB_RRTYPE_SPF, "SPF", MAX_RDATA_ITEMS, { DNSLIB_RDATA_WF_TEXT, DNSLIB_RDATA_WF_TEXT, DNSLIB_RDATA_WF_TEXT, DNSLIB_RDATA_WF_TEXT, DNSLIB_RDATA_WF_TEXT, DNSLIB_RDATA_WF_TEXT, DNSLIB_RDATA_WF_TEXT, DNSLIB_RDATA_WF_TEXT, DNSLIB_RDATA_WF_TEXT, DNSLIB_RDATA_WF_TEXT, DNSLIB_RDATA_WF_TEXT, DNSLIB_RDATA_WF_TEXT, diff --git a/src/dnslib/descriptor.h b/src/dnslib/descriptor.h index 95b00350f4dfcda17e9ed3779b13ad683f6e7511..465a9a3592e65b1f6b4825e7fb849495ecff123b 100644 --- a/src/dnslib/descriptor.h +++ b/src/dnslib/descriptor.h @@ -15,7 +15,12 @@ #include "common.h" -enum mxrdtln { MAXRDATALEN = 64 }; +enum mxrdtln +{ + MAX_RDATA_ITEMS = 64, + MAX_RDATA_ITEM_SIZE = 255, + MAX_RDATA_WIRE_SIZE = MAX_RDATA_ITEMS * MAX_RDATA_ITEM_SIZE +}; //#define MAXRDATALEN 64 /* 64 is in NSD. Seems a little too much, but I'd say it's not a real issue. */ @@ -154,7 +159,7 @@ struct dnslib_rrtype_descriptor uint16_t type; /* RR type */ const char *name; /* Textual name. */ uint8_t length; /* Maximum number of RDATA items. */ - uint8_t wireformat[MAXRDATALEN]; /* rdata_wireformat_type */ + uint8_t wireformat[MAX_RDATA_ITEMS]; /* rdata_wireformat_type */ bool fixed_items; /* Has fixed number of RDATA items? */ };