1/* 2 * Copyright (C) 2004-2007, 2012 Internet Systems Consortium, Inc. ("ISC") 3 * Copyright (C) 1999-2002 Internet Software Consortium. 4 * 5 * Permission to use, copy, modify, and/or distribute this software for any 6 * purpose with or without fee is hereby granted, provided that the above 7 * copyright notice and this permission notice appear in all copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 10 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 11 * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 12 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 13 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 14 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 15 * PERFORMANCE OF THIS SOFTWARE. 16 */ 17 18/* $Id$ */ 19 20#ifndef DNS_CALLBACKS_H 21#define DNS_CALLBACKS_H 1 22 23/*! \file dns/callbacks.h */ 24 25/*** 26 *** Imports 27 ***/ 28 29#include <isc/lang.h> 30 31#include <dns/types.h> 32 33ISC_LANG_BEGINDECLS 34 35/*** 36 *** Types 37 ***/ 38 39struct dns_rdatacallbacks { 40 /*% 41 * dns_load_master calls this when it has rdatasets to commit. 42 */ 43 dns_addrdatasetfunc_t add; 44 /*% 45 * dns_load_master / dns_rdata_fromtext call this to issue a error. 46 */ 47 void (*error)(struct dns_rdatacallbacks *, const char *, ...); 48 /*% 49 * dns_load_master / dns_rdata_fromtext call this to issue a warning. 50 */ 51 void (*warn)(struct dns_rdatacallbacks *, const char *, ...); 52 /*% 53 * Private data handles for use by the above callback functions. 54 */ 55 void *add_private; 56 void *error_private; 57 void *warn_private; 58}; 59 60/*** 61 *** Initialization 62 ***/ 63 64void 65dns_rdatacallbacks_init(dns_rdatacallbacks_t *callbacks); 66/*%< 67 * Initialize 'callbacks'. 68 * 69 * 70 * \li 'error' and 'warn' are set to default callbacks that print the 71 * error message through the DNS library log context. 72 * 73 *\li All other elements are initialized to NULL. 74 * 75 * Requires: 76 * \li 'callbacks' is a valid dns_rdatacallbacks_t, 77 */ 78 79void 80dns_rdatacallbacks_init_stdio(dns_rdatacallbacks_t *callbacks); 81/*%< 82 * Like dns_rdatacallbacks_init, but logs to stdio. 83 */ 84 85ISC_LANG_ENDDECLS 86 87#endif /* DNS_CALLBACKS_H */ 88