update.c revision 9198ab377b1cbf07d6d0c6eec25296c135bd66bd
ecfedec0e0b7ae3dc3cbbf9b59f63732146c1387Mark Andrews * Copyright (C) 2004-2011 Internet Systems Consortium, Inc. ("ISC")
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * Copyright (C) 1999-2003 Internet Software Consortium.
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * Permission to use, copy, modify, and/or distribute this software for any
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * purpose with or without fee is hereby granted, provided that the above
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * copyright notice and this permission notice appear in all copies.
ecfedec0e0b7ae3dc3cbbf9b59f63732146c1387Mark Andrews * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
ecfedec0e0b7ae3dc3cbbf9b59f63732146c1387Mark Andrews * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
ecfedec0e0b7ae3dc3cbbf9b59f63732146c1387Mark Andrews * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
ecfedec0e0b7ae3dc3cbbf9b59f63732146c1387Mark Andrews * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
ecfedec0e0b7ae3dc3cbbf9b59f63732146c1387Mark Andrews * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
ecfedec0e0b7ae3dc3cbbf9b59f63732146c1387Mark Andrews * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
ecfedec0e0b7ae3dc3cbbf9b59f63732146c1387Mark Andrews * PERFORMANCE OF THIS SOFTWARE.
ecfedec0e0b7ae3dc3cbbf9b59f63732146c1387Mark Andrews/* $Id: update.c,v 1.4 2011/08/30 05:16:14 marka Exp $ */
switch (result) { \
case DNS_R_NXDOMAIN: \
case DNS_R_YXDOMAIN: \
case DNS_R_YXRRSET: \
case DNS_R_NXRRSET: \
switch (result) { \
case DNS_R_NXDOMAIN: \
case DNS_R_YXDOMAIN: \
case DNS_R_YXRRSET: \
case DNS_R_NXRRSET: \
switch (result) { \
case DNS_R_NXDOMAIN: \
case DNS_R_YXDOMAIN: \
case DNS_R_YXRRSET: \
case DNS_R_NXRRSET: \
struct rr {
static isc_result_t
return (result);
return (ISC_R_SUCCESS);
static isc_result_t
return (result);
void * rr_action_data;
static isc_result_t
return (result);
return (result);
return (ISC_R_SUCCESS);
static isc_result_t
return (ISC_R_SUCCESS);
return (result);
goto cleanup_node;
goto cleanup_iterator;
return (result);
static isc_result_t
static isc_result_t
void *rr_action_data)
return (ISC_R_SUCCESS);
return (result);
goto cleanup_node;
goto cleanup_node;
goto cleanup_rdataset;
goto cleanup_rdataset;
return (result);
static isc_result_t
return (ISC_R_EXISTS);
#define RETURN_EXISTENCE_FLAG \
result))
static isc_result_t
static isc_result_t
switch (result) {
case ISC_R_SUCCESS:
case DNS_R_DELEGATION:
case DNS_R_DNAME:
case DNS_R_CNAME:
case DNS_R_NXDOMAIN:
case DNS_R_NXRRSET:
case DNS_R_EMPTYNAME:
case DNS_R_COVERINGNSEC:
return (result);
static isc_result_t
return (ISC_R_EXISTS);
static isc_result_t
static isc_boolean_t
return (ISC_TRUE);
static isc_boolean_t
static isc_result_t
return (result);
return (ISC_R_SUCCESS);
static isc_result_t
static isc_result_t
return (result);
static isc_result_t
return (result);
static isc_result_t
return (ISC_R_EXISTS);
return (ISC_R_SUCCESS);
static isc_result_t
static isc_result_t
dns_difftuple_t *p, *q;
while (p != NULL) {
dns_difftuple_free(&q);
return (result);
static isc_result_t
return (ISC_R_SUCCESS);
return (ISC_R_SUCCESS);
return (ISC_R_SUCCESS);
return (result);
static isc_result_t
unsigned int wraps = 0;
if (forward)
if (forward)
wraps++;
goto failure;
if (secure) {
} while (! has_nsec);
return (result);
static isc_result_t
return (result);
static isc_result_t
isc_region_t r;
return (result);
static isc_result_t
return (result);
static isc_result_t
for (i = 0; i < nkeys; i++) {
for (j = 0; j < nkeys; j++) {
if (both)
if (both) {
if (!added_sig) {
return (result);
* See also zone.c:del_sigs().
static isc_result_t
return (ISC_R_SUCCESS);
goto failure;
return (ISC_R_SUCCESS);
goto failure;
for (i = 0; i < nkeys; i++) {
* The re-signing code in zone.c
if (!found)
return (result);
static isc_result_t
return (ISC_R_SUCCESS);
return (result);
goto cleanup_node;
goto cleanup_iterator;
if (flag)
goto cleanup_iterator;
return (result);
dns_difftuple_t *t;
unsigned int nkeys = 0;
goto failure;
DNS_ZONEOPT_UPDATECHECKKSK) != 0);
DNS_ZONEOPT_DNSKEYKSKONLY) != 0);
while (t != NULL) {
goto skip;
if (flag) {
skip:
while (t != NULL &&
t != NULL;
if (! flag) {
&build_nsec3));
if (!build_nsec)
goto update_nsec3;
t != NULL;
t != NULL;
&dname_existed));
&ns_exists));
&dname_exists));
t != NULL;
if (! exists)
if (!flag) {
&flag));
if (!flag)
t != NULL;
if (flag) {
t != NULL;
INSIST(0);
if (!build_nsec3) {
goto failure;
while (t != NULL) {
0, &ns_existed));
&dname_existed));
&ns_exists));
&dname_exists));
goto nextname;
t != NULL;
if (!flag) {
&nsec_diff));
t != NULL;
INSIST(0);
for (i = 0; i < nkeys; i++)
return (result);
return (now);
if (serial == 0)
return (serial);