1 /*------------------------------------------------------------------------------ 2 * 3 * Copyright (c) 2011-2021, EURid vzw. All rights reserved. 4 * The YADIFA TM software product is provided under the BSD 3-clause license: 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: 9 * 10 * * Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * * Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * * Neither the name of EURid nor the names of its contributors may be 16 * used to endorse or promote products derived from this software 17 * without specific prior written permission. 18 * 19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 23 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 * POSSIBILITY OF SUCH DAMAGE. 30 * 31 *------------------------------------------------------------------------------ 32 * 33 */ 34 35 /** @defgroup error Database error handling 36 * @ingroup dnsdb 37 * @brief Database error handling 38 * 39 * @{ 40 */ 41 42 #ifndef _ZDB_ERROR_H 43 #define _ZDB_ERROR_H 44 45 #include <dnscore/sys_types.h> 46 47 #ifdef __cplusplus 48 extern "C" { 49 #endif 50 51 /** @brief a negative number that marks the start of the ZDB error codes */ 52 #define ZDB_ERROR_BASE 0x80040000 53 #define ZDB_ERROR_CODE(code_) ((s32)(ZDB_ERROR_BASE+(code_))) 54 55 #define ZDB_ERROR_GENERAL ZDB_ERROR_CODE(0x0000) 56 57 #define ZDB_ERROR_KEY_NOTFOUND ZDB_ERROR_CODE(0x0001) // DATABASE KEY 58 #define ZDB_ERROR_DELETEFROMEMPTY ZDB_ERROR_CODE(0x0002) // DATABASE could not delete because collection is empty 59 #define ZDB_ERROR_NOSUCHCLASS ZDB_ERROR_CODE(0x0003) // DATABASE class not found 60 #define ZDB_ERROR_NOSOAATAPEX ZDB_ERROR_CODE(0x0004) // DATABASE zone has not SOA 61 #define ZDB_ERROR_COULDNOTOOBTAINZONEIMAGE ZDB_ERROR_CODE(0x0005) 62 63 #define ZDB_ERROR_CORRUPTEDSOA ZDB_ERROR_CODE(0x1001) // RECORD soa is corrupted 64 65 #define ZDB_ERROR_ZONE_IS_NOT_SIGNED ZDB_ERROR_CODE(0x3001) // DATABASE zone dnssec // not used 66 #define ZDB_ERROR_ZONE_IS_ALREADY_BEING_SIGNED ZDB_ERROR_CODE(0x3002) // DATABASE zone dnssec 67 #define ZDB_ERROR_ZONE_INVALID ZDB_ERROR_CODE(0x3003) // DATABASE zone dynamic update 68 #define ZDB_ERROR_ZONE_IS_NOT_DNSSEC ZDB_ERROR_CODE(0x3004) // DATABASE zone dnssec // not used 69 #define ZDB_ERROR_ZONE_NO_ZSK_PRIVATE_KEY_FILE ZDB_ERROR_CODE(0x3005) // DATABASE zone dnssec 70 #define ZDB_ERROR_ZONE_NO_ACTIVE_DNSKEY_FOUND ZDB_ERROR_CODE(0x3006) // DATABASE zone dnssec // not used 71 #define ZDB_ERROR_ZONE_NOT_IN_DATABASE ZDB_ERROR_CODE(0x3007) // DATABASE zone 72 #define ZDB_ERROR_ZONE_NOT_MAINTAINED ZDB_ERROR_CODE(0x3008) // DATABASE zone 73 #define ZDB_ERROR_ZONE_OPERATION_WOULD_BLOCK ZDB_ERROR_CODE(0x3009) // DATABASE zone 74 75 #define ZDB_READER_WRONGNAMEFORZONE ZDB_ERROR_CODE(0x4001) // DATABASE zone load // not used 76 #define ZDB_READER_ZONENOTLOADED ZDB_ERROR_CODE(0x4002) // DATABASE zone load // not used 77 #define ZDB_READER_FIRST_RECORD_NOT_SOA ZDB_ERROR_CODE(0x4003) // DATABASE zone load 78 #define ZDB_READER_ANOTHER_DOMAIN_WAS_EXPECTED ZDB_ERROR_CODE(0x4004) // DATABASE zone load 79 #define ZDB_READER_NSEC3WITHOUTNSEC3PARAM ZDB_ERROR_CODE(0x4005) // DATABASE zone load // not used 80 #define ZDB_READER_MIXED_DNSSEC_VERSIONS ZDB_ERROR_CODE(0x4006) // DATABASE zone load // not used 81 #define ZDB_READER_ALREADY_LOADED ZDB_ERROR_CODE(0x4007) // DATABASE zone load // not used 82 #define ZDB_READER_NSEC3PARAMWITHOUTNSEC3 ZDB_ERROR_CODE(0x4008) // DATABASE zone load // not used 83 84 #define ZDB_ERROR_ICMTL_NOTFOUND ZDB_ERROR_CODE(0x5001) // ICMTL 85 #define ZDB_ERROR_ICMTL_STATUS_INVALID ZDB_ERROR_CODE(0x5002) // ICMTL // not used 86 #define ZDB_ERROR_ICMTL_FOLDERPATHTOOLONG ZDB_ERROR_CODE(0x5003) // ICMTL // not used 87 88 #define ZDB_JOURNAL_WRONG_PARAMETERS ZDB_ERROR_CODE(0x6001) 89 #define ZDB_JOURNAL_READING_DID_NOT_FOUND_SOA ZDB_ERROR_CODE(0x6002) // nowhere in a scan // not used 90 #define ZDB_JOURNAL_SOA_RECORD_EXPECTED ZDB_ERROR_CODE(0x6003) // record being read was expected to be an SOA // not used 91 #define ZDB_JOURNAL_SERIAL_OUT_OF_KNOWN_RANGE ZDB_ERROR_CODE(0x6004) 92 #define ZDB_JOURNAL_FEATURE_NOT_SUPPORTED ZDB_ERROR_CODE(0x6005) 93 #define ZDB_JOURNAL_NOT_INITIALISED ZDB_ERROR_CODE(0x6006) 94 #define ZDB_JOURNAL_IS_BUSY ZDB_ERROR_CODE(0x6007) 95 #define ZDB_JOURNAL_MUST_SAFEGUARD_CONTINUITY ZDB_ERROR_CODE(0x6008) 96 #define ZDB_JOURNAL_SERIAL_RANGE_LOCKED ZDB_ERROR_CODE(0x6009) 97 #define ZDB_JOURNAL_LOOKS_CORRUPTED ZDB_ERROR_CODE(0x6081) 98 #define ZDB_JOURNAL_UNEXPECTED_MAGIC ZDB_ERROR_CODE(0x6082) 99 #define ZDB_JOURNAL_SHORT_READ ZDB_ERROR_CODE(0x6083) 100 #define ZDB_JOURNAL_SIZE_LIMIT_TOO_SMALL ZDB_ERROR_CODE(0x6084) 101 102 #define ZDB_JOURNAL_SHOULD_NOT_BE_USED(err__) (((err__) >= ZDB_JOURNAL_LOOKS_CORRUPTED) && ((err__) <= ZDB_JOURNAL_SHORT_READ) ) 103 104 void zdb_register_errors(); 105 106 #ifdef __cplusplus 107 } 108 #endif 109 110 #endif /* _ZDB_ERROR_H */ 111 112 /** @} */ 113