* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: server.c,v 1.556.8.34 2011/01/07 23:46:36 tbox Exp $ */
+/* $Id: server.c,v 1.556.8.35 2011/02/03 00:28:08 each Exp $ */
/*! \file */
static isc_result_t
add_keydata_zone(dns_view_t *view, const char *directory, isc_mem_t *mctx) {
isc_result_t result;
+ dns_view_t *pview = NULL;
dns_zone_t *zone = NULL;
dns_acl_t *none = NULL;
char filename[PATH_MAX];
REQUIRE(view != NULL);
- CHECK(dns_zone_create(&zone, mctx));
+ /* See if we can re-use an existing keydata zone. */
+ result = dns_viewlist_find(&ns_g_server->viewlist,
+ view->name, view->rdclass,
+ &pview);
+ if (result != ISC_R_NOTFOUND &&
+ result != ISC_R_SUCCESS)
+ return (result);
+
+ if (pview != NULL && pview->managed_keys != NULL) {
+ dns_zone_attach(pview->managed_keys, &view->managed_keys);
+ dns_view_detach(&pview);
+ return (ISC_R_SUCCESS);
+ }
+ /* No existing keydata zone was found; create one */
+ CHECK(dns_zone_create(&zone, mctx));
CHECK(dns_zone_setorigin(zone, dns_rootname));
isc_sha256_data((void *)view->name, strlen(view->name), buffer);
view = ISC_LIST_NEXT(view, link))
{
CHECK(dns_view_loadnew(view, stop));
+
+ /* Load managed-keys data */
+ if (view->managed_keys != NULL)
+ CHECK(dns_zone_loadnew(view->managed_keys));
}
+
/*
- * Force zone maintenance. Do this after loading
- * so that we know when we need to force AXFR of
- * slave zones whose master files are missing.
+ * Resume zone XFRs.
*/
dns_zonemgr_resumexfrs(server->zonemgr);
cleanup:
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: zone.c,v 1.540.2.34 2010/12/14 00:46:40 marka Exp $ */
+/* $Id: zone.c,v 1.540.2.35 2011/02/03 00:28:08 each Exp $ */
/*! \file */
const char me[] = "set_refreshkeytimer";
isc_stdtime_t then;
isc_time_t timenow, timethen;
+ char timebuf[80];
ENTER;
then = key->refresh;
if (isc_time_compare(&zone->refreshkeytime, &timenow) < 0 ||
isc_time_compare(&timethen, &zone->refreshkeytime) < 0)
zone->refreshkeytime = timethen;
+
+ isc_time_formattimestamp(&zone->refreshkeytime, timebuf, 80);
+ dns_zone_log(zone, ISC_LOG_DEBUG(1), "next key refresh: %s", timebuf);
zone_settimer(zone, &timenow);
}