1 /* 2 * Copyright (c) 2006-2010 NLNet Labs. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * 2. Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 14 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 15 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 17 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 19 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 20 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 21 * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 22 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 23 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 * 25 */ 26 27 /** 28 * Recover from backup. 29 * 30 */ 31 32 #ifndef SIGNER_BACKUP_H 33 #define SIGNER_BACKUP_H 34 35 #include "config.h" 36 #include "duration.h" 37 #include "file.h" 38 #include "status.h" 39 40 #include <ldns/ldns.h> 41 42 /** 43 * Read token from backup file. 44 * \param[in] in input file descriptor 45 * \return char* read token 46 * 47 */ 48 char* backup_read_token(FILE* in); 49 50 /** 51 * Read and match a string from backup file. 52 * \param[in] in input file descriptor 53 * \param[in] str string to match 54 * \return 1 if string was read and matched, 0 otherwise 55 * 56 */ 57 int backup_read_check_str(FILE* in, const char* str); 58 59 /** 60 * Read a string from backup file. 61 * \param[in] in input file descriptor 62 * \param[out] string storage 63 * \return int 1 on success, 0 otherwise 64 * 65 */ 66 int backup_read_str(FILE* in, const char** str); 67 68 /** 69 * Read time from backup file. 70 * \param[in] in input file descriptor 71 * \param[out] v time_t storage 72 * \return int 1 on success, 0 otherwise 73 * 74 */ 75 int backup_read_time_t(FILE* in, time_t* v); 76 77 /** 78 * Read duration from backup file. 79 * \param[in] in input file descriptor 80 * \param[out] v duration storage 81 * \return int 1 on success, 0 otherwise 82 * 83 */ 84 int backup_read_duration(FILE* in, duration_type** v); 85 86 /** 87 * Read rr type from backup file. 88 * \param[in] in input file descriptor 89 * \param[out] v rr type storage 90 * \return int 1 on success, 0 otherwise 91 * 92 */ 93 int backup_read_rr_type(FILE* in, ldns_rr_type* v); 94 95 /** 96 * Read integer from backup file. 97 * \param[in] in input file descriptor 98 * \param[out] v integer storage 99 * \return int 1 on success, 0 otherwise 100 * 101 */ 102 int backup_read_int(FILE* in, int* v); 103 104 /** 105 * Read 8bit unsigned integer from backup file. 106 * \param[in] in input file descriptor 107 * \param[out] v uint8_t storage 108 * \return int 1 on success, 0 otherwise 109 * 110 */ 111 int backup_read_uint8_t(FILE* in, uint8_t* v); 112 113 /** 114 * Read 32bit unsigned integer from backup file. 115 * \param[in] in input file descriptor 116 * \param[out] v uint32_t storage 117 * \return int 1 on success, 0 otherwise 118 * 119 */ 120 int backup_read_uint32_t(FILE* in, uint32_t* v); 121 122 /** 123 * Read namedb from backup file. 124 * \param[in] in input file descriptor 125 * \param[in] zone zone reference 126 * \return ods_status status 127 * 128 */ 129 ods_status backup_read_namedb(FILE* in, void* zone); 130 131 /** 132 * Read ixfr journal from file. 133 * \param[in] in input file descriptor 134 * \param[in] zone zone reference 135 * \return ods_status status 136 * 137 */ 138 ods_status backup_read_ixfr(FILE* in, void* zone); 139 140 #endif /* SIGNER_BACKUP_H */ 141