parser.c revision 70e5a7403f0e0a3bd292b8287c5fed5772c15270
718c4becc5711be71e23202a87f3aaea1aedde79Mark Andrews * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * Copyright (C) 2000-2003 Internet Software Consortium.
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * Permission to use, copy, modify, and/or distribute this software for any
718c4becc5711be71e23202a87f3aaea1aedde79Mark Andrews * purpose with or without fee is hereby granted, provided that the above
c7c7ba3977ec09eabc33c4f910894eb4f9ff81bbAutomatic Updater * copyright notice and this permission notice appear in all copies.
718c4becc5711be71e23202a87f3aaea1aedde79Mark Andrews * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
718c4becc5711be71e23202a87f3aaea1aedde79Mark Andrews * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
718c4becc5711be71e23202a87f3aaea1aedde79Mark Andrews * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
718c4becc5711be71e23202a87f3aaea1aedde79Mark Andrews * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
718c4becc5711be71e23202a87f3aaea1aedde79Mark Andrews * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
718c4becc5711be71e23202a87f3aaea1aedde79Mark Andrews * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
718c4becc5711be71e23202a87f3aaea1aedde79Mark Andrews * PERFORMANCE OF THIS SOFTWARE.
718c4becc5711be71e23202a87f3aaea1aedde79Mark Andrews/* $Id: parser.c,v 1.125 2007/06/19 23:47:22 tbox Exp $ */
static isc_result_t
static isc_result_t
static isc_result_t
static isc_result_t
static isc_result_t
static isc_result_t
while (indent > 0) {
indent--;
return (result);
return (ISC_R_SUCCESS);
void *closure)
pctx.f = f;
const cfg_tuplefielddef_t *f;
unsigned int nfields = 0;
nfields++;
goto cleanup;
return (ISC_R_SUCCESS);
return (result);
const cfg_tuplefielddef_t *f;
return (ISC_R_SUCCESS);
return (result);
const cfg_tuplefielddef_t *f;
if (need_space)
const cfg_tuplefielddef_t *f;
if (need_space)
const cfg_tuplefielddef_t *f;
unsigned int nfields = 0;
nfields++;
const cfg_obj_t *
const cfg_tuplefielddef_t *f;
INSIST(0);
return (NULL);
return (ISC_R_SUCCESS);
return (ISC_R_UNEXPECTEDTOKEN);
return (result);
static isc_result_t
return (ISC_R_SUCCESS);
return (result);
static isc_result_t
return (ISC_R_SUCCESS);
return (ISC_R_UNEXPECTEDTOKEN);
return (result);
return (ISC_R_NOMEMORY);
return (ISC_R_SUCCESS);
return (result);
static isc_result_t
goto cleanup;
return (ISC_R_SUCCESS);
return (result);
void *arg)
static isc_result_t
goto cleanup;
goto cleanup;
return (ISC_R_SUCCESS);
return (result);
return (result);
return (result);
NULL };
return (ISC_R_UNEXPECTEDTOKEN);
return (result);
static isc_result_t
int len;
return (ISC_R_NOMEMORY);
return (result);
return (ISC_R_UNEXPECTEDTOKEN);
ret));
return (result);
static isc_result_t
return (ISC_R_UNEXPECTEDTOKEN);
ret));
return (result);
ret));
return (result);
if (strcasecmp(*p, s) == 0)
return (ISC_TRUE);
return (ISC_FALSE);
static isc_result_t
return (ISC_R_SUCCESS);
return (ISC_R_UNEXPECTEDTOKEN);
return (ISC_R_SUCCESS);
return (result);
static isc_result_t
return (result);
goto bad_boolean;
goto bad_boolean;
return (result);
return (ISC_R_UNEXPECTEDTOKEN);
return (result);
return (result);
static isc_result_t
return (ISC_R_NOMEMORY);
return (ISC_R_SUCCESS);
goto cleanup;
return (ISC_R_SUCCESS);
return (result);
static isc_result_t
return (ISC_R_SUCCESS);
return (result);
return (result);
return (ISC_R_SUCCESS);
return (result);
const cfg_listelt_t *
return (NULL);
const cfg_listelt_t *
const cfg_obj_t *
* the named.conf syntax, as well as for the body of the
redo:
goto redo;
clause++) {
goto done;
done:
&listobj));
sizeof(cfg_list_t));
goto cleanup;
CFG_CLAUSEFLAG_CALLBACK) != 0);
callback));
goto cleanup;
goto cleanup;
return (ISC_R_SUCCESS);
return (result);
static isc_result_t
return (ISC_R_SUCCESS);
return (result);
return (result);
static isc_result_t
return (result);
clauseset++)
clause++) {
INSIST(0);
clause++) {
static struct flagtext {
unsigned int flag;
const char *text;
} flagtexts[] = {
{ 0, NULL }
struct flagtext *p;
if (first)
clause++) {
return (result);
return (ISC_R_SUCCESS);
const cfg_obj_t *
static isc_result_t
isc_region_t r;
goto cleanup;
goto cleanup;
return (result);
return (result);
static isc_result_t
int braces = 0;
braces++;
braces--;
if (braces == 0)
goto cleanup;
return (ISC_R_SUCCESS);
return (result);
static isc_result_t
return (ISC_R_UNEXPECTEDTOKEN);
return (ISC_R_SUCCESS);
return (ISC_R_SUCCESS);
INSIST(0);
return (ISC_R_SUCCESS);
return (ISC_R_SUCCESS);
if (d != NULL)
if (d != NULL) {
#ifdef ISC_PLATFORM_HAVESCOPEID
&in6a,
&zone);
return (result);
return (ISC_R_BADADDRESSFORM);
return (ISC_R_SUCCESS);
return (ISC_R_UNEXPECTEDTOKEN);
return (result);
*port = 0;
return (ISC_R_SUCCESS);
return (ISC_R_UNEXPECTEDTOKEN);
return (ISC_R_UNEXPECTEDTOKEN);
return (ISC_R_SUCCESS);
return (result);
static isc_result_t
return (ISC_R_SUCCESS);
return (result);
case AF_INET:
case AF_INET6:
addrlen = 0;
INSIST(0);
return (ISC_R_UNEXPECTEDTOKEN);
return (ISC_R_RANGE);
return (ISC_R_SUCCESS);
return (result);
unsigned int *prefixlen) {
static isc_result_t
return (ISC_R_SUCCESS);
return (result);
if (port != 0) {
const isc_sockaddr_t *
return (ISC_R_SUCCESS);
redo:
switch (result) {
case ISC_R_SUCCESS:
goto redo;
case ISC_R_NOSPACE:
case ISC_R_IOERROR:
return (result);
return (result);
static isc_result_t
return (result);
return (ISC_R_UNEXPECTEDTOKEN);
return (ISC_R_SUCCESS);
return (none);
return (none);
if (is_warning)
isc_region_t r;
flags = 0;
const char *fmt, ...) {
return (ISC_R_NOMEMORY);
return (ISC_R_SUCCESS);
static isc_result_t
return (ISC_R_SUCCESS);
return (result);
void *closure)
pctx.f = f;