server.c revision 559b10cc8f3e1dc4d93f55c9336f74839e9fa362
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * Copyright (C) 1999 Internet Software Consortium.
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * Permission to use, copy, modify, and distribute this software for any
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * purpose with or without fee is hereby granted, provided that the above
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * copyright notice and this permission notice appear in all copies.
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉typedef struct {
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉/* XXX temporary kludge until TSIG/TKEY are objectified */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉static isc_boolean_t tsig_initialized = ISC_FALSE;
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉create_default_view(dns_c_ctx_t *cctx, isc_mem_t *mctx,
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 dns_rdataclass_t rdclass, dns_view_t **viewp)
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 REQUIRE(viewp != NULL && *viewp == NULL);
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 result = dns_view_create(mctx, rdclass, "_default", &view);
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 result = dns_cache_create(mctx, ns_g_taskmgr, ns_g_timermgr, rdclass,
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 cleaning_interval = 3600; /* Default is 1 hour. */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 (void) dns_c_ctx_getcleaninterval(cctx, &cleaning_interval);
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 dns_cache_setcleaninginterval(cache, cleaning_interval);
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * XXXRTH Temporary support for loading cache contents.
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 result = dns_db_load(view->cachedb, ns_g_cachefile);
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * XXXRTH hardwired number of tasks. Also, we'll need to
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * see if we are dealing with a shared dispatcher in this view.
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 result = dns_view_createresolver(view, ns_g_taskmgr, 31,
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * We have default hints for class IN.
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * Create the special view that handles queries for
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * "version.bind. CH". The version string returned is that
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * configured in 'configctx', or a compiled-in default if
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * there is no "version" configuration option.
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉create_version_view(dns_c_ctx_t *configctx, dns_view_t **viewp) {
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 REQUIRE(viewp != NULL && *viewp == NULL);
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 (void) dns_c_ctx_getversion(configctx, &versiontext);
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 dns_rdata_fromregion(&rdata, dns_rdataclass_ch, dns_rdatatype_txt, &r);
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 result = dns_zone_create(&zone, ns_g_mctx);
goto cleanup;
goto cleanup;
goto cleanup;
goto cleanup;
goto cleanup;
&view);
return (result);
goto cleanup;
goto cleanup;
return (result);
static isc_result_t
void *uap)
return (result);
&tview);
return (result);
return (result);
&pview);
goto cleanup;
return (result);
return (result);
INSIST(0);
goto cleanup;
goto cleanup;
goto cleanup;
return (result);
&callbacks);
#ifdef notyet
if (tsig_initialized) {
(void)task;
(void)task;
return (ISC_R_NOMEMORY);
return (ISC_R_UNEXPECTED);
return (ISC_R_SUCCESS);
ns_server_init() {
return (result);
return (result);
return (result);
goto cleanup_rootns;
goto cleanup_task;
goto cleanup_task;
return (ISC_R_SUCCESS);
return (result);
const char *format, ...)
abort();