* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: zone.c,v 1.422 2004/10/26 02:01:19 marka Exp $ */
+/* $Id: zone.c,v 1.423 2004/11/09 22:16:57 marka Exp $ */
#include <config.h>
result = ISC_R_SUCCESS;
goto invalidate_rdataset;
}
- else if (result != ISC_R_SUCCESS)
+ if (result != ISC_R_SUCCESS)
goto invalidate_rdataset;
count = 0;
dns_rdataset_init(&rdataset);
result = dns_db_findrdataset(db, node, version, dns_rdatatype_soa,
dns_rdatatype_none, 0, &rdataset, NULL);
+ if (result == ISC_R_NOTFOUND) {
+ if (soacount != NULL)
+ *soacount = 0;
+ if (serial != NULL)
+ *serial = 0;
+ if (refresh != NULL)
+ *refresh = 0;
+ if (retry != NULL)
+ *retry = 0;
+ if (expire != NULL)
+ *expire = 0;
+ if (minimum != NULL)
+ *minimum = 0;
+ result = ISC_R_SUCCESS;
+ goto invalidate_rdataset;
+ }
if (result != ISC_R_SUCCESS)
goto invalidate_rdataset;
dns_zone_log(zone, ISC_LOG_ERROR, "has no NS records");
result = DNS_R_BADZONE;
}
- }
- if (result != ISC_R_SUCCESS)
+ if (result != ISC_R_SUCCESS)
+ return (result);
+ } else {
+ dns_zone_log(zone, ISC_LOG_ERROR,
+ "retrieving SOA and NS records failed: %s",
+ dns_result_totext(result));
return (result);
+ }
ver = NULL;
dns_db_currentversion(db, &ver);