1 /* $NetBSD: util.h,v 1.4 2014/12/10 04:37:51 christos Exp $ */ 2 3 /* 4 * Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC") 5 * 6 * Permission to use, copy, modify, and/or distribute this software for any 7 * purpose with or without fee is hereby granted, provided that the above 8 * copyright notice and this permission notice appear in all copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 11 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 12 * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 13 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 14 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 15 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 16 * PERFORMANCE OF THIS SOFTWARE. 17 */ 18 19 /* Id: util.h,v 1.4 2009/09/29 15:06:05 fdupont Exp */ 20 21 #ifndef RNDC_UTIL_H 22 #define RNDC_UTIL_H 1 23 24 /*! \file */ 25 26 #include <isc/lang.h> 27 #include <isc/platform.h> 28 29 #include <isc/formatcheck.h> 30 31 #define NS_CONTROL_PORT 953 32 33 #undef DO 34 #define DO(name, function) \ 35 do { \ 36 result = function; \ 37 if (result != ISC_R_SUCCESS) \ 38 fatal("%s: %s", name, isc_result_totext(result)); \ 39 else \ 40 notify("%s", name); \ 41 } while (/*CONSTCOND*/0) 42 43 ISC_LANG_BEGINDECLS 44 45 void 46 notify(const char *fmt, ...) ISC_FORMAT_PRINTF(1, 2); 47 48 ISC_PLATFORM_NORETURN_PRE void 49 fatal(const char *format, ...) 50 ISC_FORMAT_PRINTF(1, 2) ISC_PLATFORM_NORETURN_POST; 51 52 ISC_LANG_ENDDECLS 53 54 #endif /* RNDC_UTIL_H */ 55