server.c revision 8a47ea1dadd3b985f5266f198423e01e225e218d
ca41b452ede6feaa9d8739ec3cae19389a7b0d03Bob Halley * Copyright (C) 1999, 2000 Internet Software Consortium.
e08daafffce8fb74ffca8ecf5772e334299ccf76Bob Halley * Permission to use, copy, modify, and distribute this software for any
e08daafffce8fb74ffca8ecf5772e334299ccf76Bob Halley * purpose with or without fee is hereby granted, provided that the above
e08daafffce8fb74ffca8ecf5772e334299ccf76Bob Halley * copyright notice and this permission notice appear in all copies.
15a44745412679c30a6d022733925af70a38b715David Lawrence * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
15a44745412679c30a6d022733925af70a38b715David Lawrence * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
15a44745412679c30a6d022733925af70a38b715David Lawrence * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
15a44745412679c30a6d022733925af70a38b715David Lawrence * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
15a44745412679c30a6d022733925af70a38b715David Lawrence * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15a44745412679c30a6d022733925af70a38b715David Lawrence * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
15a44745412679c30a6d022733925af70a38b715David Lawrence * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
e08daafffce8fb74ffca8ecf5772e334299ccf76Bob Halley * Check an operation for failure. Assumes that the function
e08daafffce8fb74ffca8ecf5772e334299ccf76Bob Halley * using it has a 'result' variable and a 'cleanup' label.
eb2c85b103e3fccebddf59619216ba26af98bcd1Bob Halley } while (0) \
ece3d6c35693f9e2145434b0bf14e8b752cdeee8Michael Graff } while (0) \
f3f22040a8c4835227e1a3abc54454556d4c47abBrian Wellingtontypedef struct {
e08daafffce8fb74ffca8ecf5772e334299ccf76Bob Halleystatic void fatal(char *msg, isc_result_t result);
e08daafffce8fb74ffca8ecf5772e334299ccf76Bob Halleystatic void ns_server_reload(isc_task_t *task, isc_event_t *event);
e08daafffce8fb74ffca8ecf5772e334299ccf76Bob Halleyns_listenelt_fromconfig(dns_c_lstnon_t *celt, dns_c_ctx_t *cctx,
e08daafffce8fb74ffca8ecf5772e334299ccf76Bob Halleyns_listenlist_fromconfig(dns_c_lstnlist_t *clist, dns_c_ctx_t *cctx,
e08daafffce8fb74ffca8ecf5772e334299ccf76Bob Halley * Configure a single view ACL at '*aclp'. Get its configuration by
2f3cfa8c0212e47f92f6c45459d9ee0ba8aa0045Bob Halley * calling 'getvcacl' (for per-view configuration) and maybe 'getscacl'
e08daafffce8fb74ffca8ecf5772e334299ccf76Bob Halley * (for a global default).
return (ISC_R_SUCCESS);
return (result);
static isc_result_t
if (isopen)
return (result);
static isc_result_t
isc_region_t r;
&viewclass));
&keydatabuf));
&dstkey));
goto cleanup;
return (result);
static isc_result_t
&pview);
goto cleanup;
goto cleanup;
goto cleanup;
return (result);
static isc_result_t
char *versiontext;
isc_region_t r;
&view));
return (result);
static isc_result_t
return (result);
static isc_result_t
char *viewname;
return (result);
return (ISC_R_SUCCESS);
return (result);
return (result);
return (ISC_R_SUCCESS);
* is called after parsing each "zone" statement in named.conf.
static isc_result_t
void *uap)
char *corigin;
goto cleanup;
corigin);
goto cleanup;
corigin);
goto cleanup;
corigin);
goto cleanup;
corigin);
goto cleanup;
corigin);
goto cleanup;
goto cleanup;
&pview);
goto cleanup;
goto cleanup;
zone));
return (result);
static isc_result_t
switch (af) {
case AF_INET:
case AF_INET6:
INSIST(0);
switch (af) {
case AF_INET:
case AF_INET6:
INSIST(0);
return (ISC_R_SUCCESS);
return (ISC_R_SUCCESS);
switch (af) {
case AF_INET:
case AF_INET6:
INSIST(0);
dispatchp) !=
&sa)) {
return (ISC_R_SUCCESS);
&socket);
return (result);
return (result);
return (result);
return (ISC_R_SUCCESS);
static isc_result_t
return (result);
return (ISC_R_SUCCESS);
static isc_result_t
char *pidfilename;
filename);
&callbacks));
cctx,
&listenon);
&listenon));
if (interface_interval == 0) {
goto cleanup;
if (first_time)
* files specified in named.conf get created by the
if (ns_g_logstderr) {
return (result);
static isc_result_t
return (result);
sizeof(isc_event_t));
static isc_result_t
return (result);
goto cleanup;
return (ISC_R_SUCCESS);
return (result);
static isc_result_t
return (result);
return (result);
return (ISC_R_SUCCESS);