2
0
mirror of https://gitlab.isc.org/isc-projects/dhcp synced 2025-08-30 13:57:50 +00:00

Have find_dns_zone return a result code.

This commit is contained in:
Ted Lemon 2000-07-05 07:14:26 +00:00
parent d472b8d0bf
commit 10d2632f7a

View File

@ -42,7 +42,7 @@
#ifndef lint
static char copyright[] =
"$Id: dns.c,v 1.25 2000/06/09 23:07:56 mellon Exp $ Copyright (c) 2000 The Internet Software Consortium. All rights reserved.\n";
"$Id: dns.c,v 1.26 2000/07/05 07:14:26 mellon Exp $ Copyright (c) 2000 The Internet Software Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
@ -336,9 +336,9 @@ int dns_zone_dereference (ptr, file, line)
}
#if defined (NSUPDATE)
int find_cached_zone (const char *dname, ns_class class,
ns_rcode find_cached_zone (const char *dname, ns_class class,
char *zname, size_t zsize,
struct in_addr *addrs, int naddrs,
struct in_addr *addrs, int naddrs, int *naddrout,
struct dns_zone **zcookie)
{
isc_result_t status = ISC_R_NOTFOUND;
@ -351,7 +351,7 @@ int find_cached_zone (const char *dname, ns_class class,
succeeded previously, but the update itself failed, meaning
that we shouldn't use the cached zone. */
if (!zcookie)
return 0;
return ns_r_servfail;
/* For each subzone, try to find a cached zone. */
for (np = dname - 1; np; np = strchr (np, '.')) {
@ -362,18 +362,18 @@ int find_cached_zone (const char *dname, ns_class class,
}
if (status != ISC_R_SUCCESS)
return 0;
return ns_r_servfail;
/* Make sure the zone is valid. */
if (zone -> timeout && zone -> timeout < cur_time) {
dns_zone_dereference (&zone, MDL);
return 0;
return ns_r_servfail;
}
/* Make sure the zone name will fit. */
if (strlen (zone -> name) > zsize) {
dns_zone_dereference (&zone, MDL);
return 0;
return ns_r_servfail;
}
strcpy (zname, zone -> name);
@ -423,7 +423,9 @@ int find_cached_zone (const char *dname, ns_class class,
if (!*zcookie)
dns_zone_reference (zcookie, zone, MDL);
dns_zone_dereference (&zone, MDL);
return ix;
if (naddrout)
*naddrout = ix;
return ns_r_noerror;
}
void forget_zone (struct dns_zone **zone)