libdnsc/src/constants.h

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__ */