306 lines
5.7 KiB
C
306 lines
5.7 KiB
C
|
#ifndef __CONSTANTS_H__
|
||
|
#define __CONSTANTS_H__
|
||
|
|
||
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
|
||
|
#define DNS_HEADER_SIZE 12
|
||
|
|
||
|
/*
|
||
|
* max size of a UDP packet
|
||
|
*/
|
||
|
#define DNS_MAX_UDP_SIZE 512
|
||
|
|
||
|
/*
|
||
|
* Query/Response flag
|
||
|
*/
|
||
|
// RFC 1035
|
||
|
#define QR_QUERY 0
|
||
|
// RFC 1035
|
||
|
#define QR_RESPONSE 1
|
||
|
|
||
|
/*
|
||
|
* DNS Op Codes
|
||
|
*/
|
||
|
// RFC 1035
|
||
|
#define OPCODE_QUERY 0
|
||
|
// RFC 1035, RFC 3425
|
||
|
#define OPCODE_IQUERY 1
|
||
|
// RFC 1035
|
||
|
#define OPCODE_STATUS 2
|
||
|
// RFC 1996
|
||
|
#define OPCODE_NOTIFY 4
|
||
|
// RFC 2136
|
||
|
#define OPCODE_UPDATE 5
|
||
|
|
||
|
/*
|
||
|
* Resource Record Classes
|
||
|
*/
|
||
|
// RFC 1035
|
||
|
#define RR_CLASS_IN 1
|
||
|
// RFC 1035
|
||
|
#define RR_CLASS_CH 3
|
||
|
// RFC 1035
|
||
|
#define RR_CLASS_HS 4
|
||
|
// RFC 2136
|
||
|
#define RR_CLASS_NONE 254
|
||
|
// RFC 1035
|
||
|
#define RR_CLASS_ANY 255
|
||
|
|
||
|
/*
|
||
|
* DNS Response Codes
|
||
|
*/
|
||
|
// RFC 1035
|
||
|
#define RCODE_NOERROR 0
|
||
|
// RFC 1035
|
||
|
#define RCODE_FORMERR 1
|
||
|
// RFC 1035
|
||
|
#define RCODE_SERVFAIL 2
|
||
|
// RFC 1035
|
||
|
#define RCODE_NXDOMAIN 3
|
||
|
// RFC 1035
|
||
|
#define RCODE_NOTIMP 4
|
||
|
// RFC 1035
|
||
|
#define RCODE_REFUSED 5
|
||
|
// RFC 2136
|
||
|
#define RCODE_YXDOMAIN 6
|
||
|
// RFC 2136
|
||
|
#define RCODE_YXRRSET 7
|
||
|
// RFC 2136
|
||
|
#define RCODE_NXRRSET 8
|
||
|
// RFC 2136
|
||
|
#define RCODE_NOTAUTH 9
|
||
|
// RFC 2136
|
||
|
#define RCODE_NOTZONE 10
|
||
|
|
||
|
// 11-15 reserved
|
||
|
|
||
|
// RFC 2845
|
||
|
#define RCODE_BADSIG 16
|
||
|
// RFC 6891
|
||
|
#define RCODE_BADVERS 16
|
||
|
// RFC 2845
|
||
|
#define RCODE_BADKEY 17
|
||
|
// RFC 2845
|
||
|
#define RCODE_BADTIME 18
|
||
|
// RFC 2930
|
||
|
#define RCODE_BADMODE 19
|
||
|
// RFC 2930
|
||
|
#define RCODE_BADNAME 20
|
||
|
// RFC 2930
|
||
|
#define RCODE_BADALG 21
|
||
|
// RFC 4635
|
||
|
#define RCODE_BADTRUNC 22
|
||
|
// RFC 7873
|
||
|
#define RCODE_BADCOOKIE 23
|
||
|
|
||
|
/*
|
||
|
* DNS RR TYPES
|
||
|
*/
|
||
|
|
||
|
// RFC 2931 pseudo type
|
||
|
#define RR_TYPE_SIG0 0
|
||
|
// RFC 1035
|
||
|
#define RR_TYPE_A 1
|
||
|
// RFC 1035
|
||
|
#define RR_TYPE_NS 2
|
||
|
// RFC 1035 - obsolete, Not implemented
|
||
|
#define RR_TYPE_MD 3
|
||
|
// RFC 1035 - obsolete, Not implemented
|
||
|
#define RR_TYPE_MF 4
|
||
|
// RFC 1035
|
||
|
#define RR_TYPE_CNAME 5
|
||
|
// RFC 1035
|
||
|
#define RR_TYPE_SOA 6
|
||
|
// RFC 1035 - obsolete, Not implemented
|
||
|
#define RR_TYPE_MB 7
|
||
|
// RFC 1035 - obsolete, Not implemented
|
||
|
#define RR_TYPE_MG 8
|
||
|
// RFC 1035 - obsolete, Not implemented
|
||
|
#define RR_TYPE_MR 9
|
||
|
// RFC 1035 - obsolete, Not implemented
|
||
|
#define RR_TYPE_NULL 10
|
||
|
// RFC 1035
|
||
|
#define RR_TYPE_WKS 11
|
||
|
// RFC 1035
|
||
|
#define RR_TYPE_PTR 12
|
||
|
// RFC 1035
|
||
|
#define RR_TYPE_HINFO 13
|
||
|
// RFC 1035 - obsolete, Not implemented
|
||
|
#define RR_TYPE_MINFO 14
|
||
|
// RFC 1035
|
||
|
#define RR_TYPE_MX 15
|
||
|
// RFC 1035
|
||
|
#define RR_TYPE_TXT 16
|
||
|
// RFC 1183
|
||
|
#define RR_TYPE_RP 17
|
||
|
// RFC 1183
|
||
|
#define RR_TYPE_AFSDB 18
|
||
|
// RFC 1183
|
||
|
#define RR_TYPE_X25 19
|
||
|
// RFC 1183
|
||
|
#define RR_TYPE_ISDN 20
|
||
|
// RFC 1183
|
||
|
#define RR_TYPE_RT 21
|
||
|
// RFC 1706
|
||
|
#define RR_TYPE_NSAP 22
|
||
|
// RFC 1348 - obsolete, Not implemented
|
||
|
#define RR_TYPE_NSAP_PTR 23
|
||
|
// RFC 2535
|
||
|
#define RR_TYPE_SIG 24
|
||
|
// RFC 2535, RFC 2930
|
||
|
#define RR_TYPE_KEY 25
|
||
|
// RFC 2163
|
||
|
#define RR_TYPE_PX 26
|
||
|
// RFC 1712 - Not implemented
|
||
|
#define RR_TYPE_GPOS 27
|
||
|
// RFC 3596
|
||
|
#define RR_TYPE_AAAA 28
|
||
|
// RFC 1876
|
||
|
#define RR_TYPE_LOC 29
|
||
|
// RFC 2065, obsoleted by by RFC 3755
|
||
|
#define RR_TYPE_NXT 30
|
||
|
// [Patton][Patton1995]
|
||
|
#define RR_TYPE_EID 31
|
||
|
// [Patton][Patton1995]
|
||
|
#define RR_TYPE_NIMLOC 32
|
||
|
// RFC 2782
|
||
|
#define RR_TYPE_SRV 33
|
||
|
// Windows only
|
||
|
#define RR_TYPE_ATMA 34
|
||
|
// RFC 2915
|
||
|
#define RR_TYPE_NAPTR 35
|
||
|
// RFC 2230
|
||
|
#define RR_TYPE_KX 36
|
||
|
// RFC 4398
|
||
|
#define RR_TYPE_CERT 37
|
||
|
// downgraded to experimental by RFC 3363
|
||
|
#define RR_TYPE_A6 38
|
||
|
// RFC 2672
|
||
|
#define RR_TYPE_DNAME 39
|
||
|
// Not implemented
|
||
|
#define RR_TYPE_SINK 40
|
||
|
// RFC 2671
|
||
|
#define RR_TYPE_OPT 41
|
||
|
// RFC 3123
|
||
|
#define RR_TYPE_APL 42
|
||
|
// RFC 4034
|
||
|
#define RR_TYPE_DS 43
|
||
|
// RFC 4255
|
||
|
#define RR_TYPE_SSHFP 44
|
||
|
// RFC 4025
|
||
|
#define RR_TYPE_IPSECKEY 45
|
||
|
// RFC 4034
|
||
|
#define RR_TYPE_RRSIG 46
|
||
|
// RFC 4034
|
||
|
#define RR_TYPE_NSEC 47
|
||
|
// RFC 4034
|
||
|
#define RR_TYPE_DNSKEY 48
|
||
|
// RFC 4701
|
||
|
#define RR_TYPE_DHCID 49
|
||
|
// RFC 5155
|
||
|
#define RR_TYPE_NSEC3 50
|
||
|
// RFC 5155
|
||
|
#define RR_TYPE_NSEC3PARAM 51
|
||
|
// RFC 6698
|
||
|
#define RR_TYPE_TLSA 52
|
||
|
// draft-ietf-dane-smime-10
|
||
|
#define RR_TYPE_SMIMEA 53
|
||
|
|
||
|
// 54 unassigned
|
||
|
|
||
|
// RFC 5205
|
||
|
#define RR_TYPE_HIP 55
|
||
|
// Not implemented
|
||
|
#define RR_TYPE_NINFO 56
|
||
|
// Not implemented
|
||
|
#define RR_TYPE_RKEY 57
|
||
|
//
|
||
|
#define RR_TYPE_TALINK 58
|
||
|
// RFC 7344
|
||
|
#define RR_TYPE_CDS 59
|
||
|
// RFC 7344
|
||
|
#define RR_TYPE_CDNSKEY 60
|
||
|
// RFC 7929
|
||
|
#define RR_TYPE_OPENPGPKEY 61
|
||
|
// RFC 7477
|
||
|
#define RR_TYPE_CSYNC 62
|
||
|
|
||
|
// 63 - 98 unassigned
|
||
|
|
||
|
// RFC 4408
|
||
|
#define RR_TYPE_SPF 99
|
||
|
// no RFC, Not implemented
|
||
|
#define RR_TYPE_UINFO 100
|
||
|
// no RFC, Not implemented
|
||
|
#define RR_TYPE_UID 101
|
||
|
// no RFC, Not implemented
|
||
|
#define RR_TYPE_GID 102
|
||
|
// no RFC, Not implemented
|
||
|
#define RR_TYPE_UNSPEC 103
|
||
|
// RFC 6742
|
||
|
#define RR_TYPE_NID 104
|
||
|
// RFC 6742
|
||
|
#define RR_TYPE_L32 105
|
||
|
// RFC 6742
|
||
|
#define RR_TYPE_L64 106
|
||
|
// RFC 6742
|
||
|
#define RR_TYPE_LP 107
|
||
|
// RFC 7043
|
||
|
#define RR_TYPE_EUI48 108
|
||
|
// RFC 7043
|
||
|
#define RR_TYPE_EUI64 109
|
||
|
|
||
|
// 110 - 248 unassigned
|
||
|
|
||
|
// RFC 2930
|
||
|
#define RR_TYPE_TKEY 249
|
||
|
// RFC 2845
|
||
|
#define RR_TYPE_TSIG 250
|
||
|
// RFC 1995 - only a full (AXFR) is supported
|
||
|
#define RR_TYPE_IXFR 251
|
||
|
// RFC 1035
|
||
|
#define RR_TYPE_AXFR 252
|
||
|
// RFC 883, Not implemented
|
||
|
#define RR_TYPE_MAILB 253
|
||
|
// RFC 973, Not implemented
|
||
|
#define RR_TYPE_MAILA 254
|
||
|
// RFC 1035 - we support both 'ANY' and '*'
|
||
|
#define RR_TYPE_ANY 255
|
||
|
// tools.ietf.org/html/draft-faltstrom-uri-06
|
||
|
#define RR_TYPE_URI 256
|
||
|
// tools.ietf.org/html/draft-ietf-pkix-caa-03
|
||
|
#define RR_TYPE_CAA 257
|
||
|
// Application Visibility and Control
|
||
|
#define RR_TYPE_AVC 258
|
||
|
|
||
|
// 259 - 32767 unassigned
|
||
|
|
||
|
// same as DS
|
||
|
#define RR_TYPE_TA 32768
|
||
|
// RFC 4431
|
||
|
#define RR_TYPE_DLV 32769
|
||
|
// Private Bind record
|
||
|
#define RR_TYPE_TYPE65534 65534
|
||
|
|
||
|
/*
|
||
|
* TSIG TYPES
|
||
|
*/
|
||
|
|
||
|
// RFC 2845, required
|
||
|
#define RR_TSIG_HMAC_MD5 "hmac-md5.sig-alg.reg.int"
|
||
|
// unsupported, optional
|
||
|
#define RR_TSIG_GSS_TSIG "gss-tsig"
|
||
|
// RFC 4635, required
|
||
|
#define RR_TSIG_HMAC_SHA1 "hmac-sha1"
|
||
|
// RFC 4635, optional
|
||
|
#define RR_TSIG_HMAC_SHA224 "hmac-sha224"
|
||
|
// RFC 4635, required
|
||
|
#define RR_TSIG_HMAC_SHA256 "hmac-sha256"
|
||
|
// RFC 4635, optional
|
||
|
#define RR_TSIG_HMAC_SHA384 "hmac-sha384"
|
||
|
// RFC 4635, optional
|
||
|
#define RR_TSIG_HMAC_SHA512 "hmac-sha512"
|
||
|
|
||
|
#endif /* __CONSTANTS_H__ */
|