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