00001 /* 00002 * Copyright (C) 2011, 2015 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: update.h,v 1.5 2011/08/30 23:46:53 tbox Exp $ */ 00018 00019 #ifndef DNS_UPDATE_H 00020 #define DNS_UPDATE_H 1 00021 00022 /*! \file dns/update.h */ 00023 00024 /*** 00025 *** Imports 00026 ***/ 00027 00028 #include <isc/lang.h> 00029 00030 #include <dns/types.h> 00031 #include <dns/diff.h> 00032 00033 typedef struct { 00034 void (*func)(void *arg, dns_zone_t *zone, int level, 00035 const char *message); 00036 void *arg; 00037 } dns_update_log_t; 00038 00039 ISC_LANG_BEGINDECLS 00040 00041 /*** 00042 *** Functions 00043 ***/ 00044 00045 isc_uint32_t 00046 dns_update_soaserial(isc_uint32_t serial, dns_updatemethod_t method); 00047 /*%< 00048 * Return the next serial number after 'serial', depending on the 00049 * update method 'method': 00050 * 00051 *\li * dns_updatemethod_increment increments the serial number by one 00052 *\li * dns_updatemethod_unixtime sets the serial number to the current 00053 * time (seconds since UNIX epoch) if possible, or increments by one 00054 * if not. 00055 */ 00056 00057 isc_result_t 00058 dns_update_signatures(dns_update_log_t *log, dns_zone_t *zone, dns_db_t *db, 00059 dns_dbversion_t *oldver, dns_dbversion_t *newver, 00060 dns_diff_t *diff, isc_uint32_t sigvalidityinterval); 00061 00062 isc_result_t 00063 dns_update_signaturesinc(dns_update_log_t *log, dns_zone_t *zone, dns_db_t *db, 00064 dns_dbversion_t *oldver, dns_dbversion_t *newver, 00065 dns_diff_t *diff, isc_uint32_t sigvalidityinterval, 00066 dns_update_state_t **state); 00067 00068 ISC_LANG_ENDDECLS 00069 00070 #endif /* DNS_UPDATE_H */