2 * a error2str function to make sense of all the
3 * error codes we have laying ardoun
5 * a Net::DNS like library for C
6 * LibDNS Team @ NLnet Labs
7 * (c) NLnet Labs, 2005-2006
8 * See the file LICENSE for the license
11 #include <ldns/config.h>
13 #include <ldns/ldns.h>
15 ldns_lookup_table ldns_error_str
[] = {
16 { LDNS_STATUS_OK
, "All OK" },
17 { LDNS_STATUS_EMPTY_LABEL
, "Empty label" },
18 { LDNS_STATUS_LABEL_OVERFLOW
, "Label length overflow" },
19 { LDNS_STATUS_DOMAINNAME_OVERFLOW
, "Domainname length overflow" },
20 { LDNS_STATUS_DOMAINNAME_UNDERFLOW
, "Domainname length underflow (zero length)" },
21 { LDNS_STATUS_DDD_OVERFLOW
, "\\DDD sequence overflow (>255)" },
22 { LDNS_STATUS_PACKET_OVERFLOW
, "Packet size overflow" },
23 { LDNS_STATUS_INVALID_POINTER
, "Invalid compression pointer" },
24 { LDNS_STATUS_MEM_ERR
, "General memory error" },
25 { LDNS_STATUS_INTERNAL_ERR
, "Internal error, this should not happen" },
26 { LDNS_STATUS_SSL_ERR
, "Error in SSL library" },
27 { LDNS_STATUS_ERR
, "General LDNS error" },
28 { LDNS_STATUS_INVALID_INT
, "Conversion error, integer expected" },
29 { LDNS_STATUS_INVALID_IP4
, "Conversion error, ip4 addr expected" },
30 { LDNS_STATUS_INVALID_IP6
, "Conversion error, ip6 addr expected" },
31 { LDNS_STATUS_INVALID_STR
, "Conversion error, string expected" },
32 { LDNS_STATUS_INVALID_B32_EXT
, "Conversion error, b32 ext encoding expected" },
33 { LDNS_STATUS_INVALID_B64
, "Conversion error, b64 encoding expected" },
34 { LDNS_STATUS_INVALID_HEX
, "Conversion error, hex encoding expected" },
35 { LDNS_STATUS_INVALID_TIME
, "Conversion error, time encoding expected" },
36 { LDNS_STATUS_NETWORK_ERR
, "Could not send or receive, because of network error" },
37 { LDNS_STATUS_ADDRESS_ERR
, "Could not start AXFR, because of address error" },
38 { LDNS_STATUS_FILE_ERR
, "Could not open the files" },
39 { LDNS_STATUS_UNKNOWN_INET
, "Uknown address family" },
40 { LDNS_STATUS_NOT_IMPL
, "This function is not implemented (yet), please notify the developers - or not..." },
41 { LDNS_STATUS_NULL
, "Supplied value pointer null" },
42 { LDNS_STATUS_CRYPTO_UNKNOWN_ALGO
, "Unknown cryptographic algorithm" },
43 { LDNS_STATUS_CRYPTO_ALGO_NOT_IMPL
, "Cryptographic algorithm not implemented" },
44 { LDNS_STATUS_CRYPTO_NO_RRSIG
, "No DNSSEC signature(s)" },
45 { LDNS_STATUS_CRYPTO_NO_DNSKEY
, "No DNSSEC public key(s)" },
46 { LDNS_STATUS_CRYPTO_TYPE_COVERED_ERR
, "The signature does not cover this RRset" },
47 { LDNS_STATUS_CRYPTO_NO_TRUSTED_DNSKEY
, "No signatures found for trusted DNSSEC public key(s)" },
48 { LDNS_STATUS_CRYPTO_NO_DS
, "No DS record(s)" },
49 { LDNS_STATUS_CRYPTO_NO_TRUSTED_DS
, "Could not validate DS record(s)" },
50 { LDNS_STATUS_CRYPTO_NO_MATCHING_KEYTAG_DNSKEY
, "No keys with the keytag and algorithm from the RRSIG found" },
51 { LDNS_STATUS_CRYPTO_VALIDATED
, "Valid DNSSEC signature" },
52 { LDNS_STATUS_CRYPTO_BOGUS
, "Bogus DNSSEC signature" },
53 { LDNS_STATUS_CRYPTO_SIG_EXPIRED
, "DNSSEC signature has expired" },
54 { LDNS_STATUS_CRYPTO_SIG_NOT_INCEPTED
, "DNSSEC signature not incepted yet" },
55 { LDNS_STATUS_CRYPTO_TSIG_BOGUS
, "Bogus TSIG signature" },
56 { LDNS_STATUS_CRYPTO_TSIG_ERR
, "Could not create TSIG signature" },
57 { LDNS_STATUS_CRYPTO_EXPIRATION_BEFORE_INCEPTION
, "DNSSEC signature has expiration date earlier than inception date" },
58 { LDNS_STATUS_ENGINE_KEY_NOT_LOADED
, "Unable to load private key from engine" },
59 { LDNS_STATUS_NSEC3_ERR
, "Error in NSEC3 denial of existence proof" },
60 { LDNS_STATUS_RES_NO_NS
, "No (valid) nameservers defined in the resolver" },
61 { LDNS_STATUS_RES_QUERY
, "No correct query given to resolver" },
62 { LDNS_STATUS_WIRE_INCOMPLETE_HEADER
, "header section incomplete" },
63 { LDNS_STATUS_WIRE_INCOMPLETE_QUESTION
, "question section incomplete" },
64 { LDNS_STATUS_WIRE_INCOMPLETE_ANSWER
, "answer section incomplete" },
65 { LDNS_STATUS_WIRE_INCOMPLETE_AUTHORITY
, "authority section incomplete" },
66 { LDNS_STATUS_WIRE_INCOMPLETE_ADDITIONAL
, "additional section incomplete" },
67 { LDNS_STATUS_NO_DATA
, "No data" },
68 { LDNS_STATUS_CERT_BAD_ALGORITHM
, "Bad algorithm type for CERT record" },
69 { LDNS_STATUS_SYNTAX_TYPE_ERR
, "Syntax error, could not parse the RR's type" },
70 { LDNS_STATUS_SYNTAX_CLASS_ERR
, "Syntax error, could not parse the RR's class" },
71 { LDNS_STATUS_SYNTAX_TTL_ERR
, "Syntax error, could not parse the RR's TTL" },
72 { LDNS_STATUS_SYNTAX_INCLUDE_ERR_NOTIMPL
, "Syntax error, $INCLUDE not implemented" },
73 { LDNS_STATUS_SYNTAX_RDATA_ERR
, "Syntax error, could not parse the RR's rdata" },
74 { LDNS_STATUS_SYNTAX_DNAME_ERR
, "Syntax error, could not parse the RR's dname(s)" },
75 { LDNS_STATUS_SYNTAX_VERSION_ERR
, "Syntax error, version mismatch" },
76 { LDNS_STATUS_SYNTAX_ALG_ERR
, "Syntax error, algorithm unknown or non parseable" },
77 { LDNS_STATUS_SYNTAX_KEYWORD_ERR
, "Syntax error, unknown keyword in input" },
78 { LDNS_STATUS_SYNTAX_ERR
, "Syntax error, could not parse the RR" },
79 { LDNS_STATUS_SYNTAX_EMPTY
, "Empty line was returned" },
80 { LDNS_STATUS_SYNTAX_TTL
, "$TTL directive was seen in the zone" },
81 { LDNS_STATUS_SYNTAX_ORIGIN
, "$ORIGIN directive was seen in the zone" },
82 { LDNS_STATUS_SYNTAX_INCLUDE
, "$INCLUDE directive was seen in the zone" },
83 { LDNS_STATUS_SYNTAX_ITERATIONS_OVERFLOW
, "Iterations count for NSEC3 record higher than maximum" },
84 { LDNS_STATUS_SYNTAX_MISSING_VALUE_ERR
, "Syntax error, value expected" },
85 { LDNS_STATUS_SYNTAX_INTEGER_OVERFLOW
, "Syntax error, integer value too large" },
86 { LDNS_STATUS_SYNTAX_BAD_ESCAPE
, "Syntax error, bad escape sequence" },
87 { LDNS_STATUS_SOCKET_ERROR
, "Error creating socket" },
88 { LDNS_STATUS_DNSSEC_EXISTENCE_DENIED
, "Existence denied by NSEC" },
89 { LDNS_STATUS_DNSSEC_NSEC_RR_NOT_COVERED
, "RR not covered by the given NSEC RRs" },
90 { LDNS_STATUS_DNSSEC_NSEC_WILDCARD_NOT_COVERED
, "wildcard not covered by the given NSEC RRs" },
91 { LDNS_STATUS_DNSSEC_NSEC3_ORIGINAL_NOT_FOUND
, "original of NSEC3 hashed name could not be found" },
92 { LDNS_STATUS_MISSING_RDATA_FIELDS_RRSIG
, "The RRSIG has to few rdata fields" },
93 { LDNS_STATUS_MISSING_RDATA_FIELDS_KEY
, "The DNSKEY has to few rdata fields" },
94 { LDNS_STATUS_CRYPTO_SIG_EXPIRED_WITHIN_MARGIN
,
95 "DNSSEC signature will expire too soon" },
96 { LDNS_STATUS_CRYPTO_SIG_NOT_INCEPTED_WITHIN_MARGIN
,
97 "DNSSEC signature not incepted long enough" },
98 { LDNS_STATUS_DANE_UNKNOWN_CERTIFICATE_USAGE
,
99 "Unknown TLSA Certificate Usage" },
100 { LDNS_STATUS_DANE_UNKNOWN_SELECTOR
, "Unknown TLSA Selector" },
101 { LDNS_STATUS_DANE_UNKNOWN_MATCHING_TYPE
,
102 "Unknown TLSA Matching Type" },
103 { LDNS_STATUS_DANE_UNKNOWN_PROTOCOL
,
104 "Unknown protocol. Only IPv4 and IPv6 are understood" },
105 { LDNS_STATUS_DANE_UNKNOWN_TRANSPORT
,
106 "Unknown transport. Should be one of {tcp, udp, sctp}" },
107 { LDNS_STATUS_DANE_MISSING_EXTRA_CERTS
, /* Trust anchor assertion */
108 "More than one certificate should be provided" },
109 { LDNS_STATUS_DANE_EXTRA_CERTS_NOT_USED
, /* Trust anchor assertion */
110 "Non of the extra certificates is used to sign the first" },
111 { LDNS_STATUS_DANE_OFFSET_OUT_OF_RANGE
, /* Trust anchor assertion */
112 "The offset was out of range" },
113 { LDNS_STATUS_DANE_INSECURE
, /* Unused by library */
114 "The queried resource records were insecure" },
115 { LDNS_STATUS_DANE_BOGUS
, /* Unused by library */
116 "The queried resource records were bogus" },
117 { LDNS_STATUS_DANE_TLSA_DID_NOT_MATCH
,
118 "The TLSA record(s) "
119 "did not match with the server certificate (chain)" },
120 { LDNS_STATUS_DANE_NON_CA_CERTIFICATE
,
121 "The certificate was not a CA certificate" },
122 { LDNS_STATUS_DANE_PKIX_DID_NOT_VALIDATE
,
123 "Could not PKIX validate" },
124 { LDNS_STATUS_DANE_PKIX_NO_SELF_SIGNED_TRUST_ANCHOR
,
125 "The validation path "
126 "did not end in a self-signed certificate" },
131 ldns_get_errorstr_by_id(ldns_status err
)
133 ldns_lookup_table
*lt
;
135 lt
= ldns_lookup_by_id(ldns_error_str
, err
);