mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-28 04:34:54 -04:00
Merge branch 'fanf-deduplicate-file-line' into 'main'
De-duplicate __FILE__, __LINE__ plus some error reporting cleanup See merge request isc-projects/bind9!6914
This commit is contained in:
commit
3b285ee9ad
38 changed files with 162 additions and 250 deletions
3
CHANGES
3
CHANGES
|
|
@ -1,3 +1,6 @@
|
|||
5997. [cleanup] Less ceremonial UNEXPECTED_ERROR() and FATAL_ERROR()
|
||||
reporting macros. [GL !6914]
|
||||
|
||||
5996. [bug] Fix a couple of bugs in cfg_print_duration(), which
|
||||
could result in generating incomplete duration values
|
||||
when printing the configuration using named-checkconf.
|
||||
|
|
|
|||
|
|
@ -531,8 +531,7 @@ dlz_dlopen_init(isc_mem_t *mctx) {
|
|||
mctx, &dlz_dlopen);
|
||||
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"dns_sdlzregister() failed: %s",
|
||||
UNEXPECTED_ERROR("dns_sdlzregister() failed: %s",
|
||||
isc_result_totext(result));
|
||||
result = ISC_R_UNEXPECTED;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -241,12 +241,12 @@ assertion_failed(const char *file, int line, isc_assertiontype_t type,
|
|||
}
|
||||
|
||||
noreturn static void
|
||||
library_fatal_error(const char *file, int line, const char *format,
|
||||
va_list args) ISC_FORMAT_PRINTF(3, 0);
|
||||
library_fatal_error(const char *file, int line, const char *func,
|
||||
const char *format, va_list args) ISC_FORMAT_PRINTF(3, 0);
|
||||
|
||||
static void
|
||||
library_fatal_error(const char *file, int line, const char *format,
|
||||
va_list args) {
|
||||
library_fatal_error(const char *file, int line, const char *func,
|
||||
const char *format, va_list args) {
|
||||
/*
|
||||
* Handle isc_error_fatal() calls from our libraries.
|
||||
*/
|
||||
|
|
@ -260,7 +260,7 @@ library_fatal_error(const char *file, int line, const char *format,
|
|||
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_CRITICAL,
|
||||
"%s:%d: fatal error:", file, line);
|
||||
"%s:%d:%s(): fatal error: ", file, line, func);
|
||||
isc_log_vwrite(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_CRITICAL, format,
|
||||
args);
|
||||
|
|
@ -268,7 +268,7 @@ library_fatal_error(const char *file, int line, const char *format,
|
|||
NAMED_LOGMODULE_MAIN, ISC_LOG_CRITICAL,
|
||||
"exiting (due to fatal error in library)");
|
||||
} else {
|
||||
fprintf(stderr, "%s:%d: fatal error: ", file, line);
|
||||
fprintf(stderr, "%s:%d:%s(): fatal error: ", file, line, func);
|
||||
vfprintf(stderr, format, args);
|
||||
fprintf(stderr, "\n");
|
||||
fflush(stderr);
|
||||
|
|
@ -281,12 +281,13 @@ library_fatal_error(const char *file, int line, const char *format,
|
|||
}
|
||||
|
||||
static void
|
||||
library_unexpected_error(const char *file, int line, const char *format,
|
||||
va_list args) ISC_FORMAT_PRINTF(3, 0);
|
||||
library_unexpected_error(const char *file, int line, const char *func,
|
||||
const char *format, va_list args)
|
||||
ISC_FORMAT_PRINTF(3, 0);
|
||||
|
||||
static void
|
||||
library_unexpected_error(const char *file, int line, const char *format,
|
||||
va_list args) {
|
||||
library_unexpected_error(const char *file, int line, const char *func,
|
||||
const char *format, va_list args) {
|
||||
/*
|
||||
* Handle isc_error_unexpected() calls from our libraries.
|
||||
*/
|
||||
|
|
@ -294,12 +295,13 @@ library_unexpected_error(const char *file, int line, const char *format,
|
|||
if (named_g_lctx != NULL) {
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_ERROR,
|
||||
"%s:%d: unexpected error:", file, line);
|
||||
"%s:%d:%s(): unexpected error: ", file, line,
|
||||
func);
|
||||
isc_log_vwrite(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_MAIN, ISC_LOG_ERROR, format,
|
||||
args);
|
||||
} else {
|
||||
fprintf(stderr, "%s:%d: fatal error: ", file, line);
|
||||
fprintf(stderr, "%s:%d:%s(): fatal error: ", file, line, func);
|
||||
vfprintf(stderr, format, args);
|
||||
fprintf(stderr, "\n");
|
||||
fflush(stderr);
|
||||
|
|
@ -1406,8 +1408,7 @@ named_smf_get_instance(char **ins_name, int debug, isc_mem_t *mctx) {
|
|||
|
||||
if ((h = scf_handle_create(SCF_VERSION)) == NULL) {
|
||||
if (debug) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"scf_handle_create() failed: %s",
|
||||
UNEXPECTED_ERROR("scf_handle_create() failed: %s",
|
||||
scf_strerror(scf_error()));
|
||||
}
|
||||
return (ISC_R_FAILURE);
|
||||
|
|
@ -1415,8 +1416,7 @@ named_smf_get_instance(char **ins_name, int debug, isc_mem_t *mctx) {
|
|||
|
||||
if (scf_handle_bind(h) == -1) {
|
||||
if (debug) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"scf_handle_bind() failed: %s",
|
||||
UNEXPECTED_ERROR("scf_handle_bind() failed: %s",
|
||||
scf_strerror(scf_error()));
|
||||
}
|
||||
scf_handle_destroy(h);
|
||||
|
|
@ -1425,8 +1425,7 @@ named_smf_get_instance(char **ins_name, int debug, isc_mem_t *mctx) {
|
|||
|
||||
if ((namelen = scf_myname(h, NULL, 0)) == -1) {
|
||||
if (debug) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"scf_myname() failed: %s",
|
||||
UNEXPECTED_ERROR("scf_myname() failed: %s",
|
||||
scf_strerror(scf_error()));
|
||||
}
|
||||
scf_handle_destroy(h);
|
||||
|
|
@ -1434,8 +1433,7 @@ named_smf_get_instance(char **ins_name, int debug, isc_mem_t *mctx) {
|
|||
}
|
||||
|
||||
if ((instance = isc_mem_allocate(mctx, namelen + 1)) == NULL) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"named_smf_get_instance memory "
|
||||
UNEXPECTED_ERROR("named_smf_get_instance memory "
|
||||
"allocation failed: %s",
|
||||
isc_result_totext(ISC_R_NOMEMORY));
|
||||
scf_handle_destroy(h);
|
||||
|
|
@ -1444,8 +1442,7 @@ named_smf_get_instance(char **ins_name, int debug, isc_mem_t *mctx) {
|
|||
|
||||
if (scf_myname(h, instance, namelen + 1) == -1) {
|
||||
if (debug) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"scf_myname() failed: %s",
|
||||
UNEXPECTED_ERROR("scf_myname() failed: %s",
|
||||
scf_strerror(scf_error()));
|
||||
}
|
||||
scf_handle_destroy(h);
|
||||
|
|
@ -1552,8 +1549,7 @@ main(int argc, char *argv[]) {
|
|||
result = named_smf_get_instance(&instance, 1, named_g_mctx);
|
||||
if (result == ISC_R_SUCCESS && instance != NULL) {
|
||||
if (smf_disable_instance(instance, 0) != 0) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"smf_disable_instance() "
|
||||
UNEXPECTED_ERROR("smf_disable_instance() "
|
||||
"failed for %s : %s",
|
||||
instance,
|
||||
scf_strerror(scf_error()));
|
||||
|
|
|
|||
|
|
@ -4765,8 +4765,7 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist, cfg_obj_t *config,
|
|||
maps, AF_INET6, &dispatch6, &dscp6,
|
||||
(ISC_LIST_PREV(view, link) == NULL)));
|
||||
if (dispatch4 == NULL && dispatch6 == NULL) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"unable to obtain either an IPv4 or"
|
||||
UNEXPECTED_ERROR("unable to obtain either an IPv4 or"
|
||||
" an IPv6 dispatch");
|
||||
result = ISC_R_UNEXPECTED;
|
||||
goto cleanup;
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ beginload(dns_db_t *db, dns_rdatacallbacks_t *callbacks) {
|
|||
UNUSED(db);
|
||||
UNUSED(callbacks);
|
||||
|
||||
fatal_error("current implementation should never call beginload()");
|
||||
FATAL_ERROR("current implementation should never call beginload()");
|
||||
|
||||
/* Not reached */
|
||||
return (ISC_R_SUCCESS);
|
||||
|
|
@ -149,7 +149,7 @@ endload(dns_db_t *db, dns_rdatacallbacks_t *callbacks) {
|
|||
UNUSED(db);
|
||||
UNUSED(callbacks);
|
||||
|
||||
fatal_error("current implementation should never call endload()");
|
||||
FATAL_ERROR("current implementation should never call endload()");
|
||||
|
||||
/* Not reached */
|
||||
return (ISC_R_SUCCESS);
|
||||
|
|
@ -163,7 +163,7 @@ dump(dns_db_t *db, dns_dbversion_t *version, const char *filename,
|
|||
UNUSED(filename);
|
||||
UNUSED(masterformat);
|
||||
|
||||
fatal_error("current implementation should never call dump()");
|
||||
FATAL_ERROR("current implementation should never call dump()");
|
||||
|
||||
/* Not reached */
|
||||
return (ISC_R_SUCCESS);
|
||||
|
|
|
|||
|
|
@ -34,8 +34,6 @@
|
|||
|
||||
#include <dns/log.h>
|
||||
|
||||
#define fatal_error(...) isc_error_fatal(__FILE__, __LINE__, __VA_ARGS__)
|
||||
|
||||
#define log_error_r(fmt, ...) \
|
||||
log_error(fmt ": %s", ##__VA_ARGS__, isc_result_totext(result))
|
||||
|
||||
|
|
|
|||
|
|
@ -157,7 +157,7 @@ syncptr_find_zone(sample_instance_t *inst, dns_rdata_t *rdata, dns_name_t *name,
|
|||
break;
|
||||
|
||||
default:
|
||||
fatal_error("unsupported address type 0x%x", rdata->type);
|
||||
FATAL_ERROR("unsupported address type 0x%x", rdata->type);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -37,8 +37,7 @@ not, we call UNEXPECTED_ERROR(). E.g.
|
|||
|
||||
void foo() {
|
||||
if (some_unix_thang() < 0) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"some_unix_thang() failed: %s",
|
||||
UNEXPECTED_ERROR("some_unix_thang() failed: %s",
|
||||
strerror(errno));
|
||||
return (ISC_R_UNEXPECTED);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -471,8 +471,7 @@ cache_cleaner_init(dns_cache_t *cache, isc_taskmgr_t *taskmgr,
|
|||
if (taskmgr != NULL) {
|
||||
result = isc_task_create(taskmgr, &cleaner->task, 0);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"isc_task_create() failed: %s",
|
||||
UNEXPECTED_ERROR("isc_task_create() failed: %s",
|
||||
isc_result_totext(result));
|
||||
result = ISC_R_UNEXPECTED;
|
||||
goto cleanup_iterator;
|
||||
|
|
@ -534,8 +533,7 @@ begin_cleaning(cache_cleaner_t *cleaner) {
|
|||
* so there is nothing to be cleaned.
|
||||
*/
|
||||
if (result != ISC_R_NOMORE && cleaner->iterator != NULL) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"cache cleaner: "
|
||||
UNEXPECTED_ERROR("cache cleaner: "
|
||||
"dns_dbiterator_first() failed: %s",
|
||||
isc_result_totext(result));
|
||||
dns_dbiterator_destroy(&cleaner->iterator);
|
||||
|
|
@ -674,10 +672,8 @@ incremental_cleaning_action(isc_task_t *task, isc_event_t *event) {
|
|||
|
||||
result = dns_dbiterator_current(cleaner->iterator, &node, NULL);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"cache cleaner: "
|
||||
"dns_dbiterator_current() "
|
||||
"failed: %s",
|
||||
UNEXPECTED_ERROR("cache cleaner: "
|
||||
"dns_dbiterator_current() failed: %s",
|
||||
isc_result_totext(result));
|
||||
|
||||
end_cleaning(cleaner, event);
|
||||
|
|
@ -703,8 +699,7 @@ incremental_cleaning_action(isc_task_t *task, isc_event_t *event) {
|
|||
* keep trying to clean it, otherwise stop cleaning.
|
||||
*/
|
||||
if (result != ISC_R_NOMORE) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"cache cleaner: "
|
||||
UNEXPECTED_ERROR("cache cleaner: "
|
||||
"dns_dbiterator_next() "
|
||||
"failed: %s",
|
||||
isc_result_totext(result));
|
||||
|
|
@ -779,8 +774,7 @@ dns_cache_clean(dns_cache_t *cache, isc_stdtime_t now) {
|
|||
*/
|
||||
result = dns_db_expirenode(cache->db, node, now);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"cache cleaner: dns_db_expirenode() "
|
||||
UNEXPECTED_ERROR("cache cleaner: dns_db_expirenode() "
|
||||
"failed: %s",
|
||||
isc_result_totext(result));
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -176,8 +176,7 @@ dns_diff_appendminimal(dns_diff_t *diff, dns_difftuple_t **tuplep) {
|
|||
{
|
||||
ISC_LIST_UNLINK(diff->tuples, ot, link);
|
||||
if ((*tuplep)->op == ot->op) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"unexpected non-minimal diff");
|
||||
UNEXPECTED_ERROR("unexpected non-minimal diff");
|
||||
} else {
|
||||
dns_difftuple_free(tuplep);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -168,7 +168,7 @@ dns_db_createsoatuple(dns_db_t *db, dns_dbversion_t *ver, isc_mem_t *mctx,
|
|||
freenode:
|
||||
dns_db_detachnode(db, &node);
|
||||
nonode:
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__, "missing SOA");
|
||||
UNEXPECTED_ERROR("missing SOA");
|
||||
return (result);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -445,8 +445,7 @@ loadctx_destroy(dns_loadctx_t *lctx) {
|
|||
if (lctx->f != NULL) {
|
||||
isc_result_t result = isc_stdio_close(lctx->f);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"isc_stdio_close() failed: %s",
|
||||
UNEXPECTED_ERROR("isc_stdio_close() failed: %s",
|
||||
isc_result_totext(result));
|
||||
}
|
||||
}
|
||||
|
|
@ -1281,8 +1280,7 @@ load_text(dns_loadctx_t *lctx) {
|
|||
}
|
||||
dump_time = (isc_stdtime_t)dump_time64;
|
||||
if (dump_time != dump_time64) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"%s: %s:%lu: $DATE "
|
||||
UNEXPECTED_ERROR("%s: %s:%lu: $DATE "
|
||||
"outside epoch",
|
||||
"dns_master_load",
|
||||
source, line);
|
||||
|
|
@ -1290,8 +1288,7 @@ load_text(dns_loadctx_t *lctx) {
|
|||
goto insist_and_cleanup;
|
||||
}
|
||||
if (dump_time > current_time) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"%s: %s:%lu: "
|
||||
UNEXPECTED_ERROR("%s: %s:%lu: "
|
||||
"$DATE in future, "
|
||||
"using current date",
|
||||
"dns_master_load",
|
||||
|
|
@ -1570,8 +1567,7 @@ load_text(dns_loadctx_t *lctx) {
|
|||
ictx->drop = false;
|
||||
}
|
||||
} else {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"%s:%lu: isc_lex_gettoken() returned "
|
||||
UNEXPECTED_ERROR("%s:%lu: isc_lex_gettoken() returned "
|
||||
"unexpected token type (%d)",
|
||||
source, line, token.type);
|
||||
result = ISC_R_UNEXPECTED;
|
||||
|
|
@ -1663,8 +1659,7 @@ load_text(dns_loadctx_t *lctx) {
|
|||
}
|
||||
|
||||
if (token.type != isc_tokentype_string) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"isc_lex_gettoken() returned "
|
||||
UNEXPECTED_ERROR("isc_lex_gettoken() returned "
|
||||
"unexpected token type");
|
||||
result = ISC_R_UNEXPECTED;
|
||||
if (MANYERRS(lctx, result)) {
|
||||
|
|
@ -1685,8 +1680,7 @@ load_text(dns_loadctx_t *lctx) {
|
|||
}
|
||||
|
||||
if (token.type != isc_tokentype_string) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"isc_lex_gettoken() returned "
|
||||
UNEXPECTED_ERROR("isc_lex_gettoken() returned "
|
||||
"unexpected token type");
|
||||
result = ISC_R_UNEXPECTED;
|
||||
if (MANYERRS(lctx, result)) {
|
||||
|
|
@ -2273,8 +2267,7 @@ load_header(dns_loadctx_t *lctx) {
|
|||
|
||||
result = isc_stdio_read(data, 1, commonlen, lctx->f, NULL);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"isc_stdio_read failed: %s",
|
||||
UNEXPECTED_ERROR("isc_stdio_read failed: %s",
|
||||
isc_result_totext(result));
|
||||
return (result);
|
||||
}
|
||||
|
|
@ -2306,8 +2299,7 @@ load_header(dns_loadctx_t *lctx) {
|
|||
|
||||
result = isc_stdio_read(data + commonlen, 1, remainder, lctx->f, NULL);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"isc_stdio_read failed: %s",
|
||||
UNEXPECTED_ERROR("isc_stdio_read failed: %s",
|
||||
isc_result_totext(result));
|
||||
return (result);
|
||||
}
|
||||
|
|
@ -2332,8 +2324,7 @@ openfile_raw(dns_loadctx_t *lctx, const char *master_file) {
|
|||
|
||||
result = isc_stdio_open(master_file, "rb", &lctx->f);
|
||||
if (result != ISC_R_SUCCESS && result != ISC_R_FILENOTFOUND) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"isc_stdio_open() failed: %s",
|
||||
UNEXPECTED_ERROR("isc_stdio_open() failed: %s",
|
||||
isc_result_totext(result));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -857,8 +857,7 @@ dns_rdataset_totext(dns_rdataset_t *rdataset, const dns_name_t *owner_name,
|
|||
isc_result_t result;
|
||||
result = totext_ctx_init(&dns_master_style_debug, NULL, &ctx);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"could not set master file style");
|
||||
UNEXPECTED_ERROR("could not set master file style");
|
||||
return (ISC_R_UNEXPECTED);
|
||||
}
|
||||
|
||||
|
|
@ -890,8 +889,7 @@ dns_master_rdatasettotext(const dns_name_t *owner_name,
|
|||
isc_result_t result;
|
||||
result = totext_ctx_init(style, indent, &ctx);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"could not set master file style");
|
||||
UNEXPECTED_ERROR("could not set master file style");
|
||||
return (ISC_R_UNEXPECTED);
|
||||
}
|
||||
|
||||
|
|
@ -907,8 +905,7 @@ dns_master_questiontotext(const dns_name_t *owner_name,
|
|||
isc_result_t result;
|
||||
result = totext_ctx_init(style, NULL, &ctx);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"could not set master file style");
|
||||
UNEXPECTED_ERROR("could not set master file style");
|
||||
return (ISC_R_UNEXPECTED);
|
||||
}
|
||||
|
||||
|
|
@ -983,8 +980,7 @@ dump_rdataset(isc_mem_t *mctx, const dns_name_t *name, dns_rdataset_t *rdataset,
|
|||
result = isc_stdio_write(r.base, 1, (size_t)r.length, f, NULL);
|
||||
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"master file write failed: %s",
|
||||
UNEXPECTED_ERROR("master file write failed: %s",
|
||||
isc_result_totext(result));
|
||||
return (result);
|
||||
}
|
||||
|
|
@ -1266,8 +1262,7 @@ restart:
|
|||
result = isc_stdio_write(r.base, 1, (size_t)r.length, f, NULL);
|
||||
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"raw master file write failed: %s",
|
||||
UNEXPECTED_ERROR("raw master file write failed: %s",
|
||||
isc_result_totext(result));
|
||||
return (result);
|
||||
}
|
||||
|
|
@ -1582,8 +1577,7 @@ dumpctx_create(isc_mem_t *mctx, dns_db_t *db, dns_dbversion_t *version,
|
|||
|
||||
result = totext_ctx_init(style, NULL, &dctx->tctx);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"could not set master file style");
|
||||
UNEXPECTED_ERROR("could not set master file style");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
|
|
@ -1973,8 +1967,7 @@ dns_master_dumpnodetostream(isc_mem_t *mctx, dns_db_t *db,
|
|||
|
||||
result = totext_ctx_init(style, NULL, &ctx);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"could not set master file style");
|
||||
UNEXPECTED_ERROR("could not set master file style");
|
||||
return (ISC_R_UNEXPECTED);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1058,8 +1058,7 @@ dns_name_fromtext(dns_name_t *name, isc_buffer_t *source,
|
|||
}
|
||||
break;
|
||||
default:
|
||||
FATAL_ERROR(__FILE__, __LINE__, "Unexpected state %d",
|
||||
state);
|
||||
FATAL_ERROR("Unexpected state %d", state);
|
||||
/* Does not return. */
|
||||
}
|
||||
}
|
||||
|
|
@ -1279,8 +1278,7 @@ dns_name_totext2(const dns_name_t *name, unsigned int options,
|
|||
count--;
|
||||
}
|
||||
} else {
|
||||
FATAL_ERROR(__FILE__, __LINE__,
|
||||
"Unexpected label type %02x", count);
|
||||
FATAL_ERROR("Unexpected label type %02x", count);
|
||||
UNREACHABLE();
|
||||
}
|
||||
|
||||
|
|
@ -1402,8 +1400,7 @@ dns_name_tofilenametext(const dns_name_t *name, bool omit_final_dot,
|
|||
count--;
|
||||
}
|
||||
} else {
|
||||
FATAL_ERROR(__FILE__, __LINE__,
|
||||
"Unexpected label type %02x", count);
|
||||
FATAL_ERROR("Unexpected label type %02x", count);
|
||||
UNREACHABLE();
|
||||
}
|
||||
|
||||
|
|
@ -1659,8 +1656,7 @@ dns_name_fromwire(dns_name_t *name, isc_buffer_t *source, dns_decompress_t dctx,
|
|||
state = fw_start;
|
||||
break;
|
||||
default:
|
||||
FATAL_ERROR(__FILE__, __LINE__, "Unknown state %d",
|
||||
state);
|
||||
FATAL_ERROR("Unknown state %d", state);
|
||||
/* Does not return. */
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4426,7 +4426,7 @@ zone_findzonecut(dns_db_t *db, const dns_name_t *name, unsigned int options,
|
|||
UNUSED(rdataset);
|
||||
UNUSED(sigrdataset);
|
||||
|
||||
FATAL_ERROR(__FILE__, __LINE__, "zone_findzonecut() called!");
|
||||
FATAL_ERROR("zone_findzonecut() called!");
|
||||
|
||||
UNREACHABLE();
|
||||
return (ISC_R_NOTIMPLEMENTED);
|
||||
|
|
|
|||
|
|
@ -4880,8 +4880,7 @@ fctx_create(dns_resolver_t *res, const dns_name_t *name, dns_rdatatype_t type,
|
|||
|
||||
if (!dns_name_issubdomain(fctx->name, fctx->domain)) {
|
||||
dns_name_format(fctx->domain, buf, sizeof(buf));
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"'%s' is not subdomain of '%s'", fctx->info,
|
||||
UNEXPECTED_ERROR("'%s' is not subdomain of '%s'", fctx->info,
|
||||
buf);
|
||||
result = ISC_R_UNEXPECTED;
|
||||
goto cleanup_fcount;
|
||||
|
|
@ -4897,8 +4896,7 @@ fctx_create(dns_resolver_t *res, const dns_name_t *name, dns_rdatatype_t type,
|
|||
res->query_timeout % 1000 * 1000000);
|
||||
iresult = isc_time_nowplusinterval(&fctx->expires, &interval);
|
||||
if (iresult != ISC_R_SUCCESS) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"isc_time_nowplusinterval: %s",
|
||||
UNEXPECTED_ERROR("isc_time_nowplusinterval: %s",
|
||||
isc_result_totext(iresult));
|
||||
result = ISC_R_UNEXPECTED;
|
||||
goto cleanup_qmessage;
|
||||
|
|
@ -4925,8 +4923,7 @@ fctx_create(dns_resolver_t *res, const dns_name_t *name, dns_rdatatype_t type,
|
|||
iresult = isc_time_nowplusinterval(&fctx->expires_try_stale,
|
||||
&interval);
|
||||
if (iresult != ISC_R_SUCCESS) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"isc_time_nowplusinterval: %s",
|
||||
UNEXPECTED_ERROR("isc_time_nowplusinterval: %s",
|
||||
isc_result_totext(iresult));
|
||||
result = ISC_R_UNEXPECTED;
|
||||
goto cleanup_timer;
|
||||
|
|
|
|||
|
|
@ -207,7 +207,7 @@ dns_rpz_type2str(dns_rpz_type_t type) {
|
|||
case DNS_RPZ_TYPE_BAD:
|
||||
break;
|
||||
}
|
||||
FATAL_ERROR(__FILE__, __LINE__, "impossible rpz type %d", type);
|
||||
FATAL_ERROR("impossible rpz type %d", type);
|
||||
return ("impossible");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -138,8 +138,7 @@ dns_view_create(isc_mem_t *mctx, dns_rdataclass_t rdclass, const char *name,
|
|||
view->zonetable = NULL;
|
||||
result = dns_zt_create(mctx, rdclass, &view->zonetable);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"dns_zt_create() failed: %s",
|
||||
UNEXPECTED_ERROR("dns_zt_create() failed: %s",
|
||||
isc_result_totext(result));
|
||||
result = ISC_R_UNEXPECTED;
|
||||
goto cleanup_mutex;
|
||||
|
|
@ -147,8 +146,7 @@ dns_view_create(isc_mem_t *mctx, dns_rdataclass_t rdclass, const char *name,
|
|||
|
||||
result = dns_fwdtable_create(mctx, &view->fwdtable);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"dns_fwdtable_create() failed: %s",
|
||||
UNEXPECTED_ERROR("dns_fwdtable_create() failed: %s",
|
||||
isc_result_totext(result));
|
||||
result = ISC_R_UNEXPECTED;
|
||||
goto cleanup_zt;
|
||||
|
|
|
|||
|
|
@ -5240,8 +5240,7 @@ zone_postload(dns_zone_t *zone, dns_db_t *db, isc_time_t loadtime,
|
|||
break;
|
||||
|
||||
default:
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__, "unexpected zone type %d",
|
||||
zone->type);
|
||||
UNEXPECTED_ERROR("unexpected zone type %d", zone->type);
|
||||
result = ISC_R_UNEXPECTED;
|
||||
goto cleanup;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ isc__condition_waituntil(pthread_cond_t *c, pthread_mutex_t *m, isc_time_t *t) {
|
|||
int presult;
|
||||
isc_result_t result;
|
||||
struct timespec ts;
|
||||
char strbuf[ISC_STRERRORSIZE];
|
||||
|
||||
REQUIRE(c != NULL && m != NULL && t != NULL);
|
||||
|
||||
|
|
@ -61,8 +60,6 @@ isc__condition_waituntil(pthread_cond_t *c, pthread_mutex_t *m, isc_time_t *t) {
|
|||
}
|
||||
} while (presult == EINTR);
|
||||
|
||||
strerror_r(presult, strbuf, sizeof(strbuf));
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"pthread_cond_timedwait() returned %s", strbuf);
|
||||
UNEXPECTED_SYSERROR(presult, "pthread_cond_timedwait()");
|
||||
return (ISC_R_UNEXPECTED);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,12 +21,12 @@
|
|||
|
||||
/*% Default unexpected callback. */
|
||||
static void
|
||||
default_unexpected_callback(const char *, int, const char *, va_list)
|
||||
ISC_FORMAT_PRINTF(3, 0);
|
||||
default_unexpected_callback(const char *, int, const char *, const char *,
|
||||
va_list) ISC_FORMAT_PRINTF(4, 0);
|
||||
|
||||
/*% Default fatal callback. */
|
||||
static void
|
||||
default_fatal_callback(const char *, int, const char *, va_list)
|
||||
default_fatal_callback(const char *, int, const char *, const char *, va_list)
|
||||
ISC_FORMAT_PRINTF(3, 0);
|
||||
|
||||
/*% unexpected_callback */
|
||||
|
|
@ -52,42 +52,39 @@ isc_error_setfatal(isc_errorcallback_t cb) {
|
|||
}
|
||||
|
||||
void
|
||||
isc_error_unexpected(const char *file, int line, const char *format, ...) {
|
||||
isc_error_unexpected(const char *file, int line, const char *func,
|
||||
const char *format, ...) {
|
||||
va_list args;
|
||||
|
||||
va_start(args, format);
|
||||
(unexpected_callback)(file, line, format, args);
|
||||
(unexpected_callback)(file, line, func, format, args);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
void
|
||||
isc_error_fatal(const char *file, int line, const char *format, ...) {
|
||||
isc_error_fatal(const char *file, int line, const char *func,
|
||||
const char *format, ...) {
|
||||
va_list args;
|
||||
|
||||
va_start(args, format);
|
||||
(fatal_callback)(file, line, format, args);
|
||||
(fatal_callback)(file, line, func, format, args);
|
||||
va_end(args);
|
||||
abort();
|
||||
}
|
||||
|
||||
void
|
||||
isc_error_runtimecheck(const char *file, int line, const char *expression) {
|
||||
isc_error_fatal(file, line, "RUNTIME_CHECK(%s) failed", expression);
|
||||
}
|
||||
|
||||
static void
|
||||
default_unexpected_callback(const char *file, int line, const char *format,
|
||||
va_list args) {
|
||||
fprintf(stderr, "%s:%d: ", file, line);
|
||||
default_unexpected_callback(const char *file, int line, const char *func,
|
||||
const char *format, va_list args) {
|
||||
fprintf(stderr, "%s:%d:%s(): ", file, line, func);
|
||||
vfprintf(stderr, format, args);
|
||||
fprintf(stderr, "\n");
|
||||
fflush(stderr);
|
||||
}
|
||||
|
||||
static void
|
||||
default_fatal_callback(const char *file, int line, const char *format,
|
||||
va_list args) {
|
||||
fprintf(stderr, "%s:%d: fatal error: ", file, line);
|
||||
default_fatal_callback(const char *file, int line, const char *func,
|
||||
const char *format, va_list args) {
|
||||
fprintf(stderr, "%s:%d:%s(): fatal error: ", file, line, func);
|
||||
vfprintf(stderr, format, args);
|
||||
fprintf(stderr, "\n");
|
||||
fflush(stderr);
|
||||
|
|
|
|||
|
|
@ -23,7 +23,8 @@
|
|||
|
||||
ISC_LANG_BEGINDECLS
|
||||
|
||||
typedef void (*isc_errorcallback_t)(const char *, int, const char *, va_list);
|
||||
typedef void (*isc_errorcallback_t)(const char *, int, const char *,
|
||||
const char *, va_list);
|
||||
|
||||
/*% set unexpected error */
|
||||
void isc_error_setunexpected(isc_errorcallback_t);
|
||||
|
|
@ -33,19 +34,12 @@ void isc_error_setfatal(isc_errorcallback_t);
|
|||
|
||||
/*% unexpected error */
|
||||
void
|
||||
isc_error_unexpected(const char *, int, const char *, ...)
|
||||
ISC_FORMAT_PRINTF(3, 4);
|
||||
isc_error_unexpected(const char *, int, const char *, const char *, ...)
|
||||
ISC_FORMAT_PRINTF(4, 5);
|
||||
|
||||
/*% fatal error */
|
||||
noreturn void
|
||||
isc_error_fatal(const char *, int, const char *, ...) ISC_FORMAT_PRINTF(3, 4);
|
||||
|
||||
/*% runtimecheck error */
|
||||
noreturn void
|
||||
isc_error_runtimecheck(const char *, int, const char *);
|
||||
|
||||
#define ISC_ERROR_RUNTIMECHECK(cond) \
|
||||
((void)((cond) || \
|
||||
((isc_error_runtimecheck)(__FILE__, __LINE__, #cond), 0)))
|
||||
isc_error_fatal(const char *, int, const char *, const char *, ...)
|
||||
ISC_FORMAT_PRINTF(4, 5);
|
||||
|
||||
ISC_LANG_ENDDECLS
|
||||
|
|
|
|||
|
|
@ -315,22 +315,36 @@ mock_assert(const int result, const char *const expression,
|
|||
#include <isc/error.h> /* Contractual promise. */
|
||||
#include <isc/strerr.h> /* for ISC_STRERRORSIZE */
|
||||
|
||||
/*% Unexpected Error */
|
||||
#define UNEXPECTED_ERROR isc_error_unexpected
|
||||
/*% Fatal Error */
|
||||
#define FATAL_ERROR isc_error_fatal
|
||||
#define UNEXPECTED_ERROR(...) \
|
||||
isc_error_unexpected(__FILE__, __LINE__, __func__, __VA_ARGS__)
|
||||
|
||||
#define FATAL_ERROR(...) \
|
||||
isc_error_fatal(__FILE__, __LINE__, __func__, __VA_ARGS__)
|
||||
|
||||
#define REPORT_SYSERROR(report, err, fmt, ...) \
|
||||
{ \
|
||||
char strerr[ISC_STRERRORSIZE]; \
|
||||
strerror_r(err, strerr, sizeof(strerr)); \
|
||||
report(__FILE__, __LINE__, __func__, fmt ": %s (%d)", \
|
||||
##__VA_ARGS__, strerr, err); \
|
||||
}
|
||||
|
||||
#define UNEXPECTED_SYSERROR(err, ...) \
|
||||
REPORT_SYSERROR(isc_error_unexpected, err, __VA_ARGS__)
|
||||
|
||||
#define FATAL_SYSERROR(err, ...) \
|
||||
REPORT_SYSERROR(isc_error_fatal, err, __VA_ARGS__)
|
||||
|
||||
#ifdef UNIT_TESTING
|
||||
|
||||
#define RUNTIME_CHECK(expression) \
|
||||
((!(expression)) \
|
||||
? (mock_assert(0, #expression, __FILE__, __LINE__), abort()) \
|
||||
: (void)0)
|
||||
#define RUNTIME_CHECK(cond) \
|
||||
((cond) ? (void)0 \
|
||||
: (mock_assert(0, #cond, __FILE__, __LINE__), abort()))
|
||||
|
||||
#else /* UNIT_TESTING */
|
||||
|
||||
/*% Runtime Check */
|
||||
#define RUNTIME_CHECK(cond) ISC_ERROR_RUNTIMECHECK(cond)
|
||||
#define RUNTIME_CHECK(cond) \
|
||||
((cond) ? (void)0 : FATAL_ERROR("RUNTIME_CHECK(%s) failed", #cond))
|
||||
|
||||
#endif /* UNIT_TESTING */
|
||||
|
||||
|
|
@ -338,13 +352,9 @@ mock_assert(const int result, const char *const expression,
|
|||
* Runtime check which logs the error value returned by a POSIX Threads
|
||||
* function and the error string that corresponds to it
|
||||
*/
|
||||
#define PTHREADS_RUNTIME_CHECK(func, ret) \
|
||||
if ((ret) != 0) { \
|
||||
char _strerrorbuf[ISC_STRERRORSIZE]; \
|
||||
strerror_r(ret, _strerrorbuf, sizeof(_strerrorbuf)); \
|
||||
isc_error_fatal(__FILE__, __LINE__, \
|
||||
"%s(): %s() failed with error %d (%s)", \
|
||||
__func__, #func, ret, _strerrorbuf); \
|
||||
#define PTHREADS_RUNTIME_CHECK(func, ret) \
|
||||
if ((ret) != 0) { \
|
||||
FATAL_SYSERROR(ret, "%s()", #func); \
|
||||
}
|
||||
|
||||
/*%
|
||||
|
|
|
|||
|
|
@ -46,10 +46,9 @@
|
|||
* These are used with all versions of libuv:
|
||||
*/
|
||||
|
||||
#define UV_RUNTIME_CHECK(func, ret) \
|
||||
if (ret != 0) { \
|
||||
isc_error_fatal(__FILE__, __LINE__, "%s failed: %s\n", #func, \
|
||||
uv_strerror(ret)); \
|
||||
#define UV_RUNTIME_CHECK(func, ret) \
|
||||
if (ret != 0) { \
|
||||
FATAL_ERROR("%s failed: %s\n", #func, uv_strerror(ret)); \
|
||||
}
|
||||
|
||||
#define isc_uverr2result(x) \
|
||||
|
|
|
|||
|
|
@ -202,8 +202,7 @@ isc_interfaceiter_create(isc_mem_t *mctx, isc_interfaceiter_t **iterp) {
|
|||
|
||||
if (getifaddrs(&iter->ifaddrs) < 0) {
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"getting interface addresses: getifaddrs: %s",
|
||||
UNEXPECTED_ERROR("getting interface addresses: getifaddrs: %s",
|
||||
strbuf);
|
||||
result = ISC_R_UNEXPECTED;
|
||||
goto failure;
|
||||
|
|
|
|||
|
|
@ -902,8 +902,7 @@ isc_lex_gettoken(isc_lex_t *lex, unsigned int options, isc_token_t *tokenp) {
|
|||
remaining--;
|
||||
break;
|
||||
default:
|
||||
FATAL_ERROR(__FILE__, __LINE__, "Unexpected state %d",
|
||||
state);
|
||||
FATAL_ERROR("Unexpected state %d", state);
|
||||
}
|
||||
} while (!done);
|
||||
|
||||
|
|
|
|||
|
|
@ -45,14 +45,10 @@
|
|||
|
||||
static void
|
||||
ignore_signal(int sig, void (*handler)(int)) {
|
||||
struct sigaction sa;
|
||||
struct sigaction sa = { .sa_handler = handler };
|
||||
|
||||
sa = (struct sigaction){ .sa_handler = handler };
|
||||
if (sigfillset(&sa.sa_mask) != 0 || sigaction(sig, &sa, NULL) < 0) {
|
||||
char strbuf[ISC_STRERRORSIZE];
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
isc_error_fatal(__FILE__, __LINE__, "%s() %d setup: %s",
|
||||
__func__, sig, strbuf);
|
||||
FATAL_SYSERROR(errno, "ignore_signal(%d)", sig);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1249,10 +1249,7 @@ isc__mempool_destroy(isc_mempool_t **restrict mpctxp FLARG) {
|
|||
#endif
|
||||
|
||||
if (mpctx->allocated > 0) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"isc_mempool_destroy(): mempool %s "
|
||||
"leaked memory",
|
||||
mpctx->name);
|
||||
UNEXPECTED_ERROR("mempool %s leaked memory", mpctx->name);
|
||||
}
|
||||
REQUIRE(mpctx->allocated == 0);
|
||||
|
||||
|
|
|
|||
|
|
@ -122,7 +122,6 @@ static isc_result_t
|
|||
try_proto(int domain) {
|
||||
int s;
|
||||
isc_result_t result = ISC_R_SUCCESS;
|
||||
char strbuf[ISC_STRERRORSIZE];
|
||||
|
||||
s = socket(domain, SOCK_STREAM, 0);
|
||||
if (s == -1) {
|
||||
|
|
@ -141,9 +140,7 @@ try_proto(int domain) {
|
|||
#endif /* ifdef EINVAL */
|
||||
return (ISC_R_NOTFOUND);
|
||||
default:
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"socket() failed: %s", strbuf);
|
||||
UNEXPECTED_SYSERROR(errno, "socket()");
|
||||
return (ISC_R_UNEXPECTED);
|
||||
}
|
||||
}
|
||||
|
|
@ -223,7 +220,6 @@ static void
|
|||
try_ipv6only(void) {
|
||||
#ifdef IPV6_V6ONLY
|
||||
int s, on;
|
||||
char strbuf[ISC_STRERRORSIZE];
|
||||
#endif /* ifdef IPV6_V6ONLY */
|
||||
isc_result_t result;
|
||||
|
||||
|
|
@ -240,9 +236,7 @@ try_ipv6only(void) {
|
|||
/* check for TCP sockets */
|
||||
s = socket(PF_INET6, SOCK_STREAM, 0);
|
||||
if (s == -1) {
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__, "socket() failed: %s",
|
||||
strbuf);
|
||||
UNEXPECTED_SYSERROR(errno, "socket()");
|
||||
ipv6only_result = ISC_R_UNEXPECTED;
|
||||
return;
|
||||
}
|
||||
|
|
@ -258,9 +252,7 @@ try_ipv6only(void) {
|
|||
/* check for UDP sockets */
|
||||
s = socket(PF_INET6, SOCK_DGRAM, 0);
|
||||
if (s == -1) {
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__, "socket() failed: %s",
|
||||
strbuf);
|
||||
UNEXPECTED_SYSERROR(errno, "socket()");
|
||||
ipv6only_result = ISC_R_UNEXPECTED;
|
||||
return;
|
||||
}
|
||||
|
|
@ -288,7 +280,6 @@ initialize_ipv6only(void) {
|
|||
static void
|
||||
try_ipv6pktinfo(void) {
|
||||
int s, on;
|
||||
char strbuf[ISC_STRERRORSIZE];
|
||||
isc_result_t result;
|
||||
int optname;
|
||||
|
||||
|
|
@ -301,9 +292,7 @@ try_ipv6pktinfo(void) {
|
|||
/* we only use this for UDP sockets */
|
||||
s = socket(PF_INET6, SOCK_DGRAM, IPPROTO_UDP);
|
||||
if (s == -1) {
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__, "socket() failed: %s",
|
||||
strbuf);
|
||||
UNEXPECTED_SYSERROR(errno, "socket()");
|
||||
ipv6pktinfo_result = ISC_R_UNEXPECTED;
|
||||
return;
|
||||
}
|
||||
|
|
@ -409,11 +398,10 @@ static isc_result_t
|
|||
make_nonblock(int fd) {
|
||||
int ret;
|
||||
int flags;
|
||||
char strbuf[ISC_STRERRORSIZE];
|
||||
#ifdef USE_FIONBIO_IOCTL
|
||||
int on = 1;
|
||||
|
||||
ret = ioctl(fd, FIONBIO, (char *)&on);
|
||||
#ifdef USE_FIONBIO_IOCTL
|
||||
flags = 1;
|
||||
ret = ioctl(fd, FIONBIO, (char *)&flags);
|
||||
#else /* ifdef USE_FIONBIO_IOCTL */
|
||||
flags = fcntl(fd, F_GETFL, 0);
|
||||
flags |= O_NONBLOCK;
|
||||
|
|
@ -421,15 +409,11 @@ make_nonblock(int fd) {
|
|||
#endif /* ifdef USE_FIONBIO_IOCTL */
|
||||
|
||||
if (ret == -1) {
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
#ifdef USE_FIONBIO_IOCTL
|
||||
"ioctl(%d, FIONBIO, &on): %s", fd,
|
||||
#else /* ifdef USE_FIONBIO_IOCTL */
|
||||
"fcntl(%d, F_SETFL, %d): %s", fd, flags,
|
||||
#endif /* ifdef USE_FIONBIO_IOCTL */
|
||||
strbuf);
|
||||
|
||||
UNEXPECTED_SYSERROR(errno, "ioctl(%d, FIONBIO, &on)", fd);
|
||||
#else
|
||||
UNEXPECTED_SYSERROR(errno, "fcntl(%d, F_SETFL, %d)", fd, flags);
|
||||
#endif
|
||||
return (ISC_R_UNEXPECTED);
|
||||
}
|
||||
|
||||
|
|
@ -508,8 +492,6 @@ cmsgsend(int s, int level, int type, struct addrinfo *res) {
|
|||
}
|
||||
|
||||
if (sendmsg(s, &msg, 0) < 0) {
|
||||
int debug = ISC_LOG_DEBUG(10);
|
||||
const char *typestr;
|
||||
switch (errno) {
|
||||
#ifdef ENOPROTOOPT
|
||||
case ENOPROTOOPT:
|
||||
|
|
@ -519,21 +501,17 @@ cmsgsend(int s, int level, int type, struct addrinfo *res) {
|
|||
#endif /* ifdef EOPNOTSUPP */
|
||||
case EINVAL:
|
||||
case EPERM:
|
||||
break;
|
||||
default:
|
||||
debug = ISC_LOG_NOTICE;
|
||||
}
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
if (debug != ISC_LOG_NOTICE) {
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
|
||||
ISC_LOGMODULE_SOCKET, ISC_LOG_DEBUG(10),
|
||||
"sendmsg: %s", strbuf);
|
||||
} else {
|
||||
typestr = (type == IP_TOS) ? "IP_TOS" : "IPV6_TCLASS";
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"probing "
|
||||
"sendmsg() with %s=%02x failed: %s",
|
||||
typestr, dscp, strbuf);
|
||||
break;
|
||||
default:
|
||||
UNEXPECTED_SYSERROR(
|
||||
errno, "probing sendmsg() with %s=%02x failed",
|
||||
(type == IP_TOS) ? "IP_TOS" : "IPV6_TCLASS",
|
||||
dscp);
|
||||
break;
|
||||
}
|
||||
return (false);
|
||||
}
|
||||
|
|
@ -593,7 +571,6 @@ try_dscp_v4(void) {
|
|||
}
|
||||
|
||||
s = socket(res0->ai_family, res0->ai_socktype, res0->ai_protocol);
|
||||
|
||||
if (s == -1) {
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
|
||||
|
|
|
|||
|
|
@ -198,11 +198,10 @@ isc_netmgr_create(isc_mem_t *mctx, isc_loopmgr_t *loopmgr, isc_nm_t **netmgrp) {
|
|||
isc_nm_t *netmgr = NULL;
|
||||
|
||||
if (uv_version() < MINIMAL_UV_VERSION) {
|
||||
isc_error_fatal(__FILE__, __LINE__,
|
||||
"libuv version too old: running with libuv %s "
|
||||
"when compiled with libuv %s will lead to "
|
||||
"libuv failures because of unknown flags",
|
||||
uv_version_string(), UV_VERSION_STRING);
|
||||
FATAL_ERROR("libuv version too old: running with libuv %s "
|
||||
"when compiled with libuv %s will lead to "
|
||||
"libuv failures because of unknown flags",
|
||||
uv_version_string(), UV_VERSION_STRING);
|
||||
}
|
||||
|
||||
netmgr = isc_mem_get(mctx, sizeof(*netmgr));
|
||||
|
|
|
|||
|
|
@ -224,8 +224,7 @@ isc___rwlock_init(isc__rwlock_t *rwl, unsigned int read_quota,
|
|||
rwl->readers_waiting = 0;
|
||||
atomic_init(&rwl->write_granted, 0);
|
||||
if (read_quota != 0) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"read quota is not supported");
|
||||
UNEXPECTED_ERROR("read quota is not supported");
|
||||
}
|
||||
if (write_quota == 0) {
|
||||
write_quota = RWLOCK_DEFAULT_WRITE_QUOTA;
|
||||
|
|
|
|||
|
|
@ -234,8 +234,7 @@ isc_sockaddr_hash(const isc_sockaddr_t *sockaddr, bool address_only) {
|
|||
p = ntohs(sockaddr->type.sin6.sin6_port);
|
||||
break;
|
||||
default:
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"unknown address family: %d",
|
||||
UNEXPECTED_ERROR("unknown address family: %d",
|
||||
(int)sockaddr->type.sa.sa_family);
|
||||
s = (const unsigned char *)&sockaddr->type;
|
||||
length = sockaddr->length;
|
||||
|
|
@ -341,7 +340,7 @@ isc_sockaddr_pf(const isc_sockaddr_t *sockaddr) {
|
|||
case AF_INET6:
|
||||
return (PF_INET6);
|
||||
default:
|
||||
FATAL_ERROR(__FILE__, __LINE__, "unknown address family: %d",
|
||||
FATAL_ERROR("unknown address family: %d",
|
||||
(int)sockaddr->type.sa.sa_family);
|
||||
}
|
||||
#endif /* if (AF_INET == PF_INET && AF_INET6 == PF_INET6) */
|
||||
|
|
@ -380,7 +379,7 @@ isc_sockaddr_setport(isc_sockaddr_t *sockaddr, in_port_t port) {
|
|||
sockaddr->type.sin6.sin6_port = htons(port);
|
||||
break;
|
||||
default:
|
||||
FATAL_ERROR(__FILE__, __LINE__, "unknown address family: %d",
|
||||
FATAL_ERROR("unknown address family: %d",
|
||||
(int)sockaddr->type.sa.sa_family);
|
||||
}
|
||||
}
|
||||
|
|
@ -397,7 +396,7 @@ isc_sockaddr_getport(const isc_sockaddr_t *sockaddr) {
|
|||
port = ntohs(sockaddr->type.sin6.sin6_port);
|
||||
break;
|
||||
default:
|
||||
FATAL_ERROR(__FILE__, __LINE__, "unknown address family: %d",
|
||||
FATAL_ERROR("unknown address family: %d",
|
||||
(int)sockaddr->type.sa.sa_family);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -41,10 +41,7 @@ isc_stdtime_get(isc_stdtime_t *t) {
|
|||
struct timespec ts;
|
||||
|
||||
if (clock_gettime(CLOCKSOURCE, &ts) == -1) {
|
||||
char strbuf[ISC_STRERRORSIZE];
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
isc_error_fatal(__FILE__, __LINE__, "clock_gettime failed: %s",
|
||||
strbuf);
|
||||
FATAL_SYSERROR(errno, "clock_gettime()");
|
||||
}
|
||||
|
||||
REQUIRE(ts.tv_sec > 0 && ts.tv_nsec >= 0 && ts.tv_nsec < NS_PER_S);
|
||||
|
|
|
|||
|
|
@ -92,9 +92,7 @@ time_now(isc_time_t *t, clockid_t clock) {
|
|||
REQUIRE(t != NULL);
|
||||
|
||||
if (clock_gettime(clock, &ts) == -1) {
|
||||
char strbuf[ISC_STRERRORSIZE];
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__, "%s", strbuf);
|
||||
UNEXPECTED_SYSERROR(errno, "clock_gettime()");
|
||||
return (ISC_R_UNEXPECTED);
|
||||
}
|
||||
|
||||
|
|
@ -136,9 +134,7 @@ isc_time_nowplusinterval(isc_time_t *t, const isc_interval_t *i) {
|
|||
INSIST(i->nanoseconds < NS_PER_S);
|
||||
|
||||
if (clock_gettime(CLOCKSOURCE, &ts) == -1) {
|
||||
char strbuf[ISC_STRERRORSIZE];
|
||||
strerror_r(errno, strbuf, sizeof(strbuf));
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__, "%s", strbuf);
|
||||
UNEXPECTED_SYSERROR(errno, "clock_gettime()");
|
||||
return (ISC_R_UNEXPECTED);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -209,8 +209,7 @@ isc__tls_initialize(void) {
|
|||
|
||||
/* Protect ourselves against unseeded PRNG */
|
||||
if (RAND_status() != 1) {
|
||||
FATAL_ERROR(__FILE__, __LINE__,
|
||||
"OpenSSL pseudorandom number generator "
|
||||
FATAL_ERROR("OpenSSL pseudorandom number generator "
|
||||
"cannot be initialized (see the `PRNG not "
|
||||
"seeded' message in the OpenSSL FAQ)");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1319,8 +1319,7 @@ do_scan(ns_interfacemgr_t *mgr, bool verbose, bool config) {
|
|||
continue;
|
||||
}
|
||||
if (result != ISC_R_NOMORE) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"interface iteration failed: %s",
|
||||
UNEXPECTED_ERROR("interface iteration failed: %s",
|
||||
isc_result_totext(result));
|
||||
} else {
|
||||
result = ((tried_listening && all_addresses_in_use)
|
||||
|
|
|
|||
|
|
@ -173,10 +173,9 @@ ns_sortlist_byaddrsetup(dns_acl_t *sortlist_acl, dns_aclenv_t *env,
|
|||
*orderp = NULL;
|
||||
break;
|
||||
default:
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"unexpected return from ns_sortlist_setup(): "
|
||||
"%d",
|
||||
sortlisttype);
|
||||
UNEXPECTED_ERROR(
|
||||
"unexpected return from ns_sortlist_setup(): %d",
|
||||
sortlisttype);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2745,10 +2745,9 @@ update_action(isc_task_t *task, isc_event_t *event) {
|
|||
/* "temp<rr.name, rr.type> += rr;" */
|
||||
result = temp_append(&temp, name, &rdata);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||
"temp entry creation failed: "
|
||||
"%s",
|
||||
isc_result_totext(result));
|
||||
UNEXPECTED_ERROR(
|
||||
"temp entry creation failed: %s",
|
||||
isc_result_totext(result));
|
||||
FAIL(ISC_R_UNEXPECTED);
|
||||
}
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Reference in a new issue