error.c revision dafcb997e390efa4423883dafd100c975c4095d6
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC")
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence * Copyright (C) 1998-2001 Internet Software Consortium.
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * Permission to use, copy, modify, and distribute this software for any
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * purpose with or without fee is hereby granted, provided that the above
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews * copyright notice and this permission notice appear in all copies.
4b6dc226f78862286daa69fba761eac9fd5da16aAutomatic Updater * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
1db2e6b81a0f14d702b5204a73a00372fdfa01e3Bob Halley * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
1db2e6b81a0f14d702b5204a73a00372fdfa01e3Bob Halley * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
1db2e6b81a0f14d702b5204a73a00372fdfa01e3Bob Halley * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
1db2e6b81a0f14d702b5204a73a00372fdfa01e3Bob Halley * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
f7b99290c31abeb20c55fc55391510450ce60423Mark Andrews * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
854d0238dbc2908490197984b3b9d558008a53dfMark Andrews * PERFORMANCE OF THIS SOFTWARE.
6324997211a5e2d82528dcde98e8981190a35faeMichael Graff/* $Id: error.c,v 1.17 2004/03/05 05:10:44 marka Exp $ */
bddfe77128b0f16af263ff149db40f0d885f43d0Mark Andrewsdefault_unexpected_callback(const char *, int, const char *, va_list)
f1b68725503ff3e46001eee5a1751e29a43a09d1Andreas Gustafssondefault_fatal_callback(const char *, int, const char *, va_list)
add4043305ca411202ed9cf1929a4179016515ceBrian Wellingtonstatic isc_errorcallback_t unexpected_callback = default_unexpected_callback;
9ac7076ebad044afb15e9e2687e3696868778538Mark Andrewsstatic isc_errorcallback_t fatal_callback = default_fatal_callback;
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrewsisc_error_setunexpected(isc_errorcallback_t cb) {
3ddd814a97de1d152ba0913c592d6e6dc83d38a6Michael Graff unexpected_callback = default_unexpected_callback;
b0ba1a6059b6d6c4b3aa77d8bc84cc443b981e01Mukund Sivaramanisc_error_setfatal(isc_errorcallback_t cb) {
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrewsisc_error_unexpected(const char *file, int line, const char *format, ...) {
b0ba1a6059b6d6c4b3aa77d8bc84cc443b981e01Mukund Sivaraman (unexpected_callback)(file, line, format, args);
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrewsisc_error_fatal(const char *file, int line, const char *format, ...) {
f7b99290c31abeb20c55fc55391510450ce60423Mark Andrewsisc_error_runtimecheck(const char *file, int line, const char *expression) {
b0ba1a6059b6d6c4b3aa77d8bc84cc443b981e01Mukund Sivaraman isc_error_fatal(file, line, "RUNTIME_CHECK(%s) %s", expression,
4529cdaedaf1a0a5f8ff89aeca510b7a4475446cBob Halleydefault_unexpected_callback(const char *file, int line, const char *format,
f7b99290c31abeb20c55fc55391510450ce60423Mark Andrewsdefault_fatal_callback(const char *file, int line, const char *format,
90e303b114e56db5809fdd19805243457fa43cd9Olafur Gudmundsson fprintf(stderr, "%s:%d: %s: ", file, line,