Unify the header guard style and replace the inconsistent include guards with #pragma once. The #pragma once is widely and very well supported in all compilers that BIND 9 supports, and #pragma once was already in use in several new or refactored headers. Using simpler method will also allow us to automate header guard checks as this is simpler to programatically check. For reference, here are the reasons for the change taken from Wikipedia[1]: > In the C and C++ programming languages, #pragma once is a non-standard > but widely supported preprocessor directive designed to cause the > current source file to be included only once in a single compilation. > > Thus, #pragma once serves the same purpose as include guards, but with > several advantages, including: less code, avoidance of name clashes, > and sometimes improvement in compilation speed. On the other hand, > #pragma once is not necessarily available in all compilers and its > implementation is tricky and might not always be reliable. 1. https://en.wikipedia.org/wiki/Pragma_once
107 lines
2.4 KiB
C++
107 lines
2.4 KiB
C++
/*
|
|
* Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
|
*
|
|
* See the COPYRIGHT file distributed with this work for additional
|
|
* information regarding copyright ownership.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <inttypes.h>
|
|
#include <stdbool.h>
|
|
|
|
#include <isc/attributes.h>
|
|
#include <isc/log.h>
|
|
#include <isc/stdtime.h>
|
|
|
|
#include <dns/rdatastruct.h>
|
|
|
|
#include <dst/dst.h>
|
|
|
|
/*! verbosity: set by -v and -q option in each program, defined in dnssectool.c
|
|
*/
|
|
extern int verbose;
|
|
extern bool quiet;
|
|
|
|
/*! program name, statically initialized in each program */
|
|
extern const char *program;
|
|
|
|
/*!
|
|
* List of DS digest types used by dnssec-cds and dnssec-dsfromkey,
|
|
* defined in dnssectool.c. Filled in by add_dtype() from -a
|
|
* arguments, sorted (so that DS records are in a canonical order) and
|
|
* terminated by a zero. The size of the array is an arbitrary limit
|
|
* which should be greater than the number of known digest types.
|
|
*/
|
|
extern uint8_t dtype[8];
|
|
|
|
typedef void(fatalcallback_t)(void);
|
|
|
|
#ifndef CPPCHECK
|
|
ISC_NORETURN void
|
|
fatal(const char *format, ...) ISC_FORMAT_PRINTF(1, 2);
|
|
#else /* CPPCHECK */
|
|
#define fatal(...) exit(1)
|
|
#endif
|
|
|
|
void
|
|
setfatalcallback(fatalcallback_t *callback);
|
|
|
|
void
|
|
check_result(isc_result_t result, const char *message);
|
|
|
|
void
|
|
vbprintf(int level, const char *fmt, ...) ISC_FORMAT_PRINTF(2, 3);
|
|
|
|
ISC_NORETURN void
|
|
version(const char *program);
|
|
|
|
void
|
|
sig_format(dns_rdata_rrsig_t *sig, char *cp, unsigned int size);
|
|
#define SIG_FORMATSIZE \
|
|
(DNS_NAME_FORMATSIZE + DNS_SECALG_FORMATSIZE + sizeof("65535"))
|
|
|
|
void
|
|
setup_logging(isc_mem_t *mctx, isc_log_t **logp);
|
|
|
|
void
|
|
cleanup_logging(isc_log_t **logp);
|
|
|
|
dns_ttl_t
|
|
strtottl(const char *str);
|
|
|
|
dst_key_state_t
|
|
strtokeystate(const char *str);
|
|
|
|
isc_stdtime_t
|
|
strtotime(const char *str, int64_t now, int64_t base, bool *setp);
|
|
|
|
dns_rdataclass_t
|
|
strtoclass(const char *str);
|
|
|
|
unsigned int
|
|
strtodsdigest(const char *str);
|
|
|
|
void
|
|
add_dtype(unsigned int dt);
|
|
|
|
isc_result_t
|
|
try_dir(const char *dirname);
|
|
|
|
void
|
|
check_keyversion(dst_key_t *key, char *keystr);
|
|
|
|
void
|
|
set_keyversion(dst_key_t *key);
|
|
|
|
bool
|
|
key_collision(dst_key_t *key, dns_name_t *name, const char *dir,
|
|
isc_mem_t *mctx, bool *exact);
|
|
|
|
bool
|
|
isoptarg(const char *arg, char **argv, void (*usage)(void));
|