00001 /* 00002 * Copyright (C) 2009, 2011, 2012 Internet Systems Consortium, Inc. ("ISC") 00003 * 00004 * Permission to use, copy, modify, and/or distribute this software for any 00005 * purpose with or without fee is hereby granted, provided that the above 00006 * copyright notice and this permission notice appear in all copies. 00007 * 00008 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 00009 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 00010 * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 00011 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 00012 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 00013 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 00014 * PERFORMANCE OF THIS SOFTWARE. 00015 */ 00016 00017 /* $Id: private.h,v 1.5 2011/10/28 12:20:31 tbox Exp $ */ 00018 00019 #include <isc/lang.h> 00020 #include <isc/types.h> 00021 00022 #include <dns/types.h> 00023 #include <dns/db.h> 00024 00025 #ifndef DNS_PRIVATE_H 00026 #define DNS_PRIVATE_H 00027 00028 ISC_LANG_BEGINDECLS 00029 00030 isc_result_t 00031 dns_private_chains(dns_db_t *db, dns_dbversion_t *ver, 00032 dns_rdatatype_t privatetype, 00033 isc_boolean_t *build_nsec, isc_boolean_t *build_nsec3); 00034 /*%< 00035 * Examine the NSEC, NSEC3PARAM and privatetype RRsets at the apex of the 00036 * database to determine which of NSEC or NSEC3 chains we are currently 00037 * maintaining. In normal operations only one of NSEC or NSEC3 is being 00038 * maintained but when we are transitiong between NSEC and NSEC3 we need 00039 * to update both sets of chains. If 'privatetype' is zero then the 00040 * privatetype RRset will not be examined. 00041 * 00042 * Requires: 00043 * \li 'db' is valid. 00044 * \li 'version' is valid or NULL. 00045 * \li 'build_nsec' is a pointer to a isc_boolean_t or NULL. 00046 * \li 'build_nsec3' is a pointer to a isc_boolean_t or NULL. 00047 * 00048 * Returns: 00049 * \li ISC_R_SUCCESS, 'build_nsec' and 'build_nsec3' will be valid. 00050 * \li other on error 00051 */ 00052 00053 isc_result_t 00054 dns_private_totext(dns_rdata_t *privaterdata, isc_buffer_t *buffer); 00055 /*%< 00056 * Convert a private-type RR 'privaterdata' to human-readable form, 00057 * and place the result in 'buffer'. The text should indicate 00058 * which action the private-type record specifies and whether the 00059 * action has been completed. 00060 * 00061 * Requires: 00062 * \li 'privaterdata' is a valid rdata containing at least five bytes 00063 * \li 'buffer' is a valid buffer 00064 * 00065 * Returns: 00066 * \li ISC_R_SUCCESS 00067 * \li other on error 00068 */ 00069 00070 ISC_LANG_ENDDECLS 00071 00072 #endif