From cb6ec16977ca23375f5fae413f5f31ed7ae49481 Mon Sep 17 00:00:00 2001
From: Lubos Slovak <lubos.slovak@nic.cz>
Date: Tue, 16 Nov 2010 16:20:03 +0100
Subject: [PATCH] Descriptors fixes + minor change.

Fixed missing comma.
MAXRDATALEN -> MAX_RDATA_ITEMS
+ added two other constants:
  - MAX_RDATA_ITEM_SIZE
  - MAX_RDATA_WIRE_SIZE
---
 CuteDNS.files           | 2 ++
 src/dnslib/descriptor.c | 8 ++++----
 src/dnslib/descriptor.h | 9 +++++++--
 3 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/CuteDNS.files b/CuteDNS.files
index a09c50bc5..c1a6b4428 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 070bc2841..91e2cd16a 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 95b00350f..465a9a359 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? */
 };
 
-- 
GitLab