1825eb42bSJan Lentfer /** 2825eb42bSJan Lentfer * \file error.h 3825eb42bSJan Lentfer * 4825eb42bSJan Lentfer * Defines error numbers and functions to translate those to a readable string. 5825eb42bSJan Lentfer * 6825eb42bSJan Lentfer */ 7825eb42bSJan Lentfer 8825eb42bSJan Lentfer /** 9825eb42bSJan Lentfer * a Net::DNS like library for C 10825eb42bSJan Lentfer * 11825eb42bSJan Lentfer * (c) NLnet Labs, 2005-2006 12825eb42bSJan Lentfer * 13825eb42bSJan Lentfer * See the file LICENSE for the license 14825eb42bSJan Lentfer */ 15825eb42bSJan Lentfer 16825eb42bSJan Lentfer #ifndef LDNS_ERROR_H 17825eb42bSJan Lentfer #define LDNS_ERROR_H 18825eb42bSJan Lentfer 19825eb42bSJan Lentfer #include <ldns/util.h> 20825eb42bSJan Lentfer 21ac996e71SJan Lentfer #ifdef __cplusplus 22ac996e71SJan Lentfer extern "C" { 23ac996e71SJan Lentfer #endif 24ac996e71SJan Lentfer 25825eb42bSJan Lentfer enum ldns_enum_status { 26825eb42bSJan Lentfer LDNS_STATUS_OK, 27825eb42bSJan Lentfer LDNS_STATUS_EMPTY_LABEL, 28825eb42bSJan Lentfer LDNS_STATUS_LABEL_OVERFLOW, 29825eb42bSJan Lentfer LDNS_STATUS_DOMAINNAME_OVERFLOW, 30825eb42bSJan Lentfer LDNS_STATUS_DOMAINNAME_UNDERFLOW, 31825eb42bSJan Lentfer LDNS_STATUS_DDD_OVERFLOW, 32825eb42bSJan Lentfer LDNS_STATUS_PACKET_OVERFLOW, 33825eb42bSJan Lentfer LDNS_STATUS_INVALID_POINTER, 34825eb42bSJan Lentfer LDNS_STATUS_MEM_ERR, 35825eb42bSJan Lentfer LDNS_STATUS_INTERNAL_ERR, 36825eb42bSJan Lentfer LDNS_STATUS_SSL_ERR, 37825eb42bSJan Lentfer LDNS_STATUS_ERR, 38825eb42bSJan Lentfer LDNS_STATUS_INVALID_INT, 39825eb42bSJan Lentfer LDNS_STATUS_INVALID_IP4, 40825eb42bSJan Lentfer LDNS_STATUS_INVALID_IP6, 41825eb42bSJan Lentfer LDNS_STATUS_INVALID_STR, 42825eb42bSJan Lentfer LDNS_STATUS_INVALID_B32_EXT, 43825eb42bSJan Lentfer LDNS_STATUS_INVALID_B64, 44825eb42bSJan Lentfer LDNS_STATUS_INVALID_HEX, 45825eb42bSJan Lentfer LDNS_STATUS_INVALID_TIME, 46825eb42bSJan Lentfer LDNS_STATUS_NETWORK_ERR, 47825eb42bSJan Lentfer LDNS_STATUS_ADDRESS_ERR, 48825eb42bSJan Lentfer LDNS_STATUS_FILE_ERR, 49825eb42bSJan Lentfer LDNS_STATUS_UNKNOWN_INET, 50825eb42bSJan Lentfer LDNS_STATUS_NOT_IMPL, 51825eb42bSJan Lentfer LDNS_STATUS_NULL, 52825eb42bSJan Lentfer LDNS_STATUS_CRYPTO_UNKNOWN_ALGO, 53825eb42bSJan Lentfer LDNS_STATUS_CRYPTO_ALGO_NOT_IMPL, 54825eb42bSJan Lentfer LDNS_STATUS_CRYPTO_NO_RRSIG, 55825eb42bSJan Lentfer LDNS_STATUS_CRYPTO_NO_DNSKEY, 56825eb42bSJan Lentfer LDNS_STATUS_CRYPTO_NO_TRUSTED_DNSKEY, 57825eb42bSJan Lentfer LDNS_STATUS_CRYPTO_NO_DS, 58825eb42bSJan Lentfer LDNS_STATUS_CRYPTO_NO_TRUSTED_DS, 59825eb42bSJan Lentfer LDNS_STATUS_CRYPTO_NO_MATCHING_KEYTAG_DNSKEY, 60825eb42bSJan Lentfer LDNS_STATUS_CRYPTO_VALIDATED, 61825eb42bSJan Lentfer LDNS_STATUS_CRYPTO_BOGUS, 62825eb42bSJan Lentfer LDNS_STATUS_CRYPTO_SIG_EXPIRED, 63825eb42bSJan Lentfer LDNS_STATUS_CRYPTO_SIG_NOT_INCEPTED, 64825eb42bSJan Lentfer LDNS_STATUS_CRYPTO_TSIG_BOGUS, 65825eb42bSJan Lentfer LDNS_STATUS_CRYPTO_TSIG_ERR, 66825eb42bSJan Lentfer LDNS_STATUS_CRYPTO_EXPIRATION_BEFORE_INCEPTION, 67825eb42bSJan Lentfer LDNS_STATUS_CRYPTO_TYPE_COVERED_ERR, 68825eb42bSJan Lentfer LDNS_STATUS_ENGINE_KEY_NOT_LOADED, 69825eb42bSJan Lentfer LDNS_STATUS_NSEC3_ERR, 70825eb42bSJan Lentfer LDNS_STATUS_RES_NO_NS, 71825eb42bSJan Lentfer LDNS_STATUS_RES_QUERY, 72825eb42bSJan Lentfer LDNS_STATUS_WIRE_INCOMPLETE_HEADER, 73825eb42bSJan Lentfer LDNS_STATUS_WIRE_INCOMPLETE_QUESTION, 74825eb42bSJan Lentfer LDNS_STATUS_WIRE_INCOMPLETE_ANSWER, 75825eb42bSJan Lentfer LDNS_STATUS_WIRE_INCOMPLETE_AUTHORITY, 76825eb42bSJan Lentfer LDNS_STATUS_WIRE_INCOMPLETE_ADDITIONAL, 77825eb42bSJan Lentfer LDNS_STATUS_NO_DATA, 78825eb42bSJan Lentfer LDNS_STATUS_CERT_BAD_ALGORITHM, 79825eb42bSJan Lentfer LDNS_STATUS_SYNTAX_TYPE_ERR, 80825eb42bSJan Lentfer LDNS_STATUS_SYNTAX_CLASS_ERR, 81825eb42bSJan Lentfer LDNS_STATUS_SYNTAX_TTL_ERR, 82ac996e71SJan Lentfer LDNS_STATUS_SYNTAX_INCLUDE_ERR_NOTIMPL, 83825eb42bSJan Lentfer LDNS_STATUS_SYNTAX_RDATA_ERR, 84825eb42bSJan Lentfer LDNS_STATUS_SYNTAX_DNAME_ERR, 85825eb42bSJan Lentfer LDNS_STATUS_SYNTAX_VERSION_ERR, 86825eb42bSJan Lentfer LDNS_STATUS_SYNTAX_ALG_ERR, 87825eb42bSJan Lentfer LDNS_STATUS_SYNTAX_KEYWORD_ERR, 88825eb42bSJan Lentfer LDNS_STATUS_SYNTAX_TTL, 89825eb42bSJan Lentfer LDNS_STATUS_SYNTAX_ORIGIN, 90ac996e71SJan Lentfer LDNS_STATUS_SYNTAX_INCLUDE, 91825eb42bSJan Lentfer LDNS_STATUS_SYNTAX_EMPTY, 92825eb42bSJan Lentfer LDNS_STATUS_SYNTAX_ITERATIONS_OVERFLOW, 93825eb42bSJan Lentfer LDNS_STATUS_SYNTAX_MISSING_VALUE_ERR, 94825eb42bSJan Lentfer LDNS_STATUS_SYNTAX_INTEGER_OVERFLOW, 95825eb42bSJan Lentfer LDNS_STATUS_SYNTAX_BAD_ESCAPE, 96825eb42bSJan Lentfer LDNS_STATUS_SOCKET_ERROR, 97825eb42bSJan Lentfer LDNS_STATUS_SYNTAX_ERR, 98825eb42bSJan Lentfer LDNS_STATUS_DNSSEC_EXISTENCE_DENIED, 99825eb42bSJan Lentfer LDNS_STATUS_DNSSEC_NSEC_RR_NOT_COVERED, 100825eb42bSJan Lentfer LDNS_STATUS_DNSSEC_NSEC_WILDCARD_NOT_COVERED, 101b5dedccaSJan Lentfer LDNS_STATUS_DNSSEC_NSEC3_ORIGINAL_NOT_FOUND, 102b5dedccaSJan Lentfer LDNS_STATUS_MISSING_RDATA_FIELDS_RRSIG, 103d1b2b5caSJohn Marino LDNS_STATUS_MISSING_RDATA_FIELDS_KEY, 104d1b2b5caSJohn Marino LDNS_STATUS_CRYPTO_SIG_EXPIRED_WITHIN_MARGIN, 105d1b2b5caSJohn Marino LDNS_STATUS_CRYPTO_SIG_NOT_INCEPTED_WITHIN_MARGIN, 106d1b2b5caSJohn Marino LDNS_STATUS_DANE_STATUS_MESSAGES, 107d1b2b5caSJohn Marino LDNS_STATUS_DANE_UNKNOWN_CERTIFICATE_USAGE, 108d1b2b5caSJohn Marino LDNS_STATUS_DANE_UNKNOWN_SELECTOR, 109d1b2b5caSJohn Marino LDNS_STATUS_DANE_UNKNOWN_MATCHING_TYPE, 110d1b2b5caSJohn Marino LDNS_STATUS_DANE_UNKNOWN_PROTOCOL, 111d1b2b5caSJohn Marino LDNS_STATUS_DANE_UNKNOWN_TRANSPORT, 112d1b2b5caSJohn Marino LDNS_STATUS_DANE_MISSING_EXTRA_CERTS, 113d1b2b5caSJohn Marino LDNS_STATUS_DANE_EXTRA_CERTS_NOT_USED, 114d1b2b5caSJohn Marino LDNS_STATUS_DANE_OFFSET_OUT_OF_RANGE, 115d1b2b5caSJohn Marino LDNS_STATUS_DANE_INSECURE, 116d1b2b5caSJohn Marino LDNS_STATUS_DANE_BOGUS, 117d1b2b5caSJohn Marino LDNS_STATUS_DANE_TLSA_DID_NOT_MATCH, 118d1b2b5caSJohn Marino LDNS_STATUS_DANE_NON_CA_CERTIFICATE, 119d1b2b5caSJohn Marino LDNS_STATUS_DANE_PKIX_DID_NOT_VALIDATE, 120*5340022aSzrj LDNS_STATUS_DANE_PKIX_NO_SELF_SIGNED_TRUST_ANCHOR, 121*5340022aSzrj LDNS_STATUS_EXISTS_ERR, 122*5340022aSzrj LDNS_STATUS_INVALID_ILNP64, 123*5340022aSzrj LDNS_STATUS_INVALID_EUI48, 124*5340022aSzrj LDNS_STATUS_INVALID_EUI64, 125*5340022aSzrj LDNS_STATUS_WIRE_RDATA_ERR, 126*5340022aSzrj LDNS_STATUS_INVALID_TAG, 127*5340022aSzrj LDNS_STATUS_TYPE_NOT_IN_BITMAP, 128*5340022aSzrj LDNS_STATUS_INVALID_RDF_TYPE, 129*5340022aSzrj LDNS_STATUS_RDATA_OVERFLOW, 130*5340022aSzrj LDNS_STATUS_SYNTAX_SUPERFLUOUS_TEXT_ERR, 131*5340022aSzrj LDNS_STATUS_NSEC3_DOMAINNAME_OVERFLOW, 132*5340022aSzrj LDNS_STATUS_DANE_NEED_OPENSSL_GE_1_1_FOR_DANE_TA 133825eb42bSJan Lentfer }; 134825eb42bSJan Lentfer typedef enum ldns_enum_status ldns_status; 135825eb42bSJan Lentfer 136825eb42bSJan Lentfer extern ldns_lookup_table ldns_error_str[]; 137825eb42bSJan Lentfer 138825eb42bSJan Lentfer /** 139825eb42bSJan Lentfer * look up a descriptive text by each error. This function 140825eb42bSJan Lentfer * could use a better name 141825eb42bSJan Lentfer * \param[in] err ldns_status number 142825eb42bSJan Lentfer * \return the string for that error 143825eb42bSJan Lentfer */ 144825eb42bSJan Lentfer const char *ldns_get_errorstr_by_id(ldns_status err); 145825eb42bSJan Lentfer 146ac996e71SJan Lentfer #ifdef __cplusplus 147ac996e71SJan Lentfer } 148ac996e71SJan Lentfer #endif 149ac996e71SJan Lentfer 150825eb42bSJan Lentfer #endif /* LDNS_ERROR_H */ 151