From 74e9f63463a860bf369fb6ed750e304c657c6dfc Mon Sep 17 00:00:00 2001
From: Lubos Slovak <lubos.slovak@nic.cz>
Date: Thu, 4 Nov 2010 18:49:24 +0100
Subject: [PATCH] DNS constants added.

refs #5, #88
---
 CuteDNS.files       |   1 +
 src/dnslib/consts.h | 121 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 122 insertions(+)
 create mode 100644 src/dnslib/consts.h

diff --git a/CuteDNS.files b/CuteDNS.files
index 885d03f4d..737c6d8a9 100644
--- a/CuteDNS.files
+++ b/CuteDNS.files
@@ -62,3 +62,4 @@ src/dnslib/rdata.h
 src/dnslib/rdata.c
 src/dnslib/node.h
 src/dnslib/node.c
+src/dnslib/consts.h
diff --git a/src/dnslib/consts.h b/src/dnslib/consts.h
new file mode 100644
index 000000000..0c61123e7
--- /dev/null
+++ b/src/dnslib/consts.h
@@ -0,0 +1,121 @@
+#ifndef _CUTEDNS_CONSTS_H
+#define _CUTEDNS_CONSTS_H
+
+#include <stdint.h>
+
+/*
+ * RR types
+ */
+const uint16_t DNSLIB_RRTYPE_UNKNOWN = 0;
+const uint16_t DNSLIB_RRTYPE_A = 1;		/* a host address */
+const uint16_t DNSLIB_RRTYPE_NS = 2;	/* an authoritative name server */
+const uint16_t DNSLIB_RRTYPE_MD = 3;	/* a mail destination (Obsolete - use MX) */
+const uint16_t DNSLIB_RRTYPE_MF = 4;	/* a mail forwarder (Obsolete - use MX) */
+const uint16_t DNSLIB_RRTYPE_CNAME = 5;	/* the canonical name for an alias */
+const uint16_t DNSLIB_RRTYPE_SOA = 6;	/* marks the start of a zone of authority */
+const uint16_t DNSLIB_RRTYPE_MB = 7;	/* a mailbox domain name (EXPERIMENTAL) */
+const uint16_t DNSLIB_RRTYPE_MG = 8;	/* a mail group member (EXPERIMENTAL) */
+const uint16_t DNSLIB_RRTYPE_MR = 9;	/* a mail rename domain name (EXPERIMENTAL) */
+const uint16_t DNSLIB_RRTYPE_NULL = 10;	/* a null RR (EXPERIMENTAL) */
+const uint16_t DNSLIB_RRTYPE_WKS = 11;	/* a well known service description */
+const uint16_t DNSLIB_RRTYPE_PTR = 12;	/* a domain name pointer */
+const uint16_t DNSLIB_RRTYPE_HINFO = 13;	/* host information */
+const uint16_t DNSLIB_RRTYPE_MINFO = 14;	/* mailbox or mail list information */
+const uint16_t DNSLIB_RRTYPE_MX = 15;	/* mail exchange */
+const uint16_t DNSLIB_RRTYPE_TXT = 16;	/* text strings */
+const uint16_t DNSLIB_RRTYPE_RP = 17;	/* RFC1183 */
+const uint16_t DNSLIB_RRTYPE_AFSDB = 18;	/* RFC1183 */
+const uint16_t DNSLIB_RRTYPE_X25 = 19;	/* RFC1183 */
+const uint16_t DNSLIB_RRTYPE_ISDN = 20;	/* RFC1183 */
+const uint16_t DNSLIB_RRTYPE_RT = 21;	/* RFC1183 */
+const uint16_t DNSLIB_RRTYPE_NSAP = 22;	/* RFC1706 */
+
+const uint16_t DNSLIB_RRTYPE_SIG = 24;	/* 2535typecode */
+const uint16_t DNSLIB_RRTYPE_KEY = 25;	/* 2535typecode */
+const uint16_t DNSLIB_RRTYPE_PX = 26;	/* RFC2163 */
+
+const uint16_t DNSLIB_RRTYPE_AAAA = 28;	/* ipv6 address */
+const uint16_t DNSLIB_RRTYPE_LOC = 29;	/* LOC record  RFC1876 */
+const uint16_t DNSLIB_RRTYPE_NXT = 30;	/* 2535typecode */
+
+const uint16_t DNSLIB_RRTYPE_SRV = 33;	/* SRV record RFC2782 */
+
+const uint16_t DNSLIB_RRTYPE_NAPTR = 35;	/* RFC2915 */
+const uint16_t DNSLIB_RRTYPE_KX = 36;	/* RFC2230 Key Exchange Delegation Record */
+const uint16_t DNSLIB_RRTYPE_CERT = 37;	/* RFC2538 */
+
+const uint16_t DNSLIB_RRTYPE_A6 = 38;	/* RFC2874 */
+
+const uint16_t DNSLIB_RRTYPE_DNAME = 39;	/* RFC2672 */
+
+const uint16_t DNSLIB_RRTYPE_OPT = 41;	/* Pseudo OPT record... */
+const uint16_t DNSLIB_RRTYPE_APL = 42;	/* RFC3123 */
+const uint16_t DNSLIB_RRTYPE_DS = 43;	/* RFC 4033, 4034, and 4035 */
+const uint16_t DNSLIB_RRTYPE_SSHFP = 44;	/* SSH Key Fingerprint */
+const uint16_t DNSLIB_RRTYPE_IPSECKEY = 45;	/* public key for ipsec use. RFC 4025 */
+
+const uint16_t DNSLIB_RRTYPE_RRSIG = 46;	/* RFC 4033, 4034, and 4035 */
+const uint16_t DNSLIB_RRTYPE_NSEC = 47;	/* RFC 4033, 4034, and 4035 */
+const uint16_t DNSLIB_RRTYPE_DNSKEY = 48;	/* RFC 4033, 4034, and 4035 */
+const uint16_t DNSLIB_RRTYPE_DHCID = 49;	/* RFC4701 DHCP information */
+const uint16_t DNSLIB_RRTYPE_NSEC3 = 50;	/* NSEC3, secure denial, prevents zonewalking */
+const uint16_t DNSLIB_RRTYPE_NSEC3PARAM = 51;	/* NSEC3PARAM at zone apex nsec3 parameters */
+
+const uint16_t DNSLIB_RRTYPE_SPF = 99;      /* RFC 4408 */
+
+const uint16_t DNSLIB_RRTYPE_MAX = DNSLIB_RRTYPE_SPF;	// last "real" RR
+
+// not designating any RRs
+const uint16_t DNSLIB_RRTYPE_TSIG = 250;
+const uint16_t DNSLIB_RRTYPE_IXFR = 251;
+const uint16_t DNSLIB_RRTYPE_AXFR = 252;
+const uint16_t DNSLIB_RRTYPE_MAILB = 253;	/* A request for mailbox-related records (MB, MG or MR) */
+const uint16_t DNSLIB_RRTYPE_MAILA = 254;	/* A request for mail agent RRs (Obsolete - see MX) */
+const uint16_t DNSLIB_RRTYPE_ANY = 255;	/* any type (wildcard) */
+
+// totally weird numbers (cannot use for indexing)
+const uint16_t DNSLIB_RRTYPE_TA = 32768;	/* DNSSEC Trust Authorities ([Weiler] 2005-12-13) */
+const uint16_t DNSLIB_RRTYPE_DLV = 32769;	/* RFC 4431 */
+
+/*
+ * OPCODEs
+ */
+const uint16_t DNSLIB_OPCODE_QUERY = 0; 	/* a standard query (QUERY) */
+const uint16_t DNSLIB_OPCODE_IQUERY = 1; 	/* an inverse query (IQUERY) */
+const uint16_t DNSLIB_OPCODE_STATUS = 2; 	/* a server status request (STATUS) */
+const uint16_t DNSLIB_OPCODE_NOTIFY = 4; 	/* NOTIFY */
+const uint16_t DNSLIB_OPCODE_UPDATE = 5; 	/* Dynamic update */
+
+const uint16_t DNSLIB_OPCODE_OFFSET = 14;
+
+/*
+ * RCODEs
+ */
+const uint16_t DNSLIB_RCODE_OK = 0; 	/* No error condition */
+const uint16_t DNSLIB_RCODE_FORMAT = 1; 	/* Format error */
+const uint16_t DNSLIB_RCODE_SERVFAIL = 2; 	/* Server failure */
+const uint16_t DNSLIB_RCODE_NXDOMAIN = 3; 	/* Name Error */
+const uint16_t DNSLIB_RCODE_NOTIMPL = 4; 	/* Not implemented */
+const uint16_t DNSLIB_RCODE_REFUSED = 5; 	/* Refused */
+const uint16_t DNSLIB_RCODE_YXDOMAIN = 6;	/* name should not exist */
+const uint16_t DNSLIB_RCODE_YXRRSET = 7;	/* rrset should not exist */
+const uint16_t DNSLIB_RCODE_NXRRSET = 8;	/* rrset does not exist */
+const uint16_t DNSLIB_RCODE_NOTAUTH = 9;	/* server not authoritative */
+const uint16_t DNSLIB_RCODE_NOTZONE = 10;	/* name not inside zone */
+
+/*
+ * CLASSes
+ */
+const uint16_t DNSLIB_CLASS_IN = 1;	/* Class IN */
+const uint16_t DNSLIB_CLASS_CS = 2;	/* Class CS */
+const uint16_t DNSLIB_CLASS_CH = 3;	/* Class CHAOS */
+const uint16_t DNSLIB_CLASS_HS = 4;	/* Class HS */
+const uint16_t DNSLIB_CLASS_NONE = 254;	/* Class NONE rfc2136 */
+const uint16_t DNSLIB_CLASS_ANY = 255;	/* Class ANY */
+
+/*
+ * Other
+ */
+const unsigned int DNSLIB_MAX_DNAME_LENGTH = 255;
+
+#endif /* _CUTEDNS_CONSTS_H */
-- 
GitLab