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? */
 };