confctx.h revision 29bf8316a33dbacaa4f37755bea495d6b9fac152
/*
* Copyright (C) 1999 Internet Software Consortium.
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
* ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
* CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
* ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
*/
#ifndef DNS_CONFIG_CONFCTX_H
#define DNS_CONFIG_CONFCTX_H 1
/*****
***** Module Info
*****/
/*
* structures created by the config file parsing routines.
*/
/*
*
* MP:
*
*
* Reliability:
*
*
* Resources:
*
*
* Security:
*
*
* Standards:
*
*/
/***
*** Imports
***/
#include <config.h>
#include <dns/confcommon.h>
#include <dns/confzone.h>
#include <dns/confkeys.h>
#include <dns/confrrset.h>
#include <dns/confserv.h>
#include <dns/confview.h>
#include <dns/confcache.h>
#include <dns/confresolv.h>
/***
*** Types
***/
typedef struct dns_c_options dns_c_options_t;
typedef struct dns_c_ctx dns_c_ctx_t;
/*
* The main baby. A pointer to one of these is what the caller gets back
* when the parsing routine is called.
*/
struct dns_c_ctx
{
int warnings; /* semantic warning count */
int errors; /* semantic error count */
};
/*
* This structure holds all the values defined by a config file 'options'
* statement
*/
struct dns_c_options
{
char *directory;
char *version;
char *dump_filename;
char *pid_filename;
char *stats_filename;
char *memstats_filename;
char *named_xfer;
char *tkeydomain;
char *tkeydhkeycp;
short query_source_port;
/*
* For the non-pointer fields of the struct a bit will be set in
* this field if a field value was explicitly set.
*/
};
/***
*** Functions
***/
dns_c_ctx_t **cfg);
dns_c_logchan_t **chan);
const char *name,
dns_c_logchan_t **chan);
dns_c_logchan_t **chan);
dns_c_logcat_t **newcat);
const char *name);
dns_c_ctx_t *cfg);
/* The modifier functions below all return ISC_R_SUCCESS when the value is
* successfully set. If the value had already been set, then the value
* ISC_R_EXISTS is returned (the value is still set).
*
* In a few functions there is a boolean parameter named 'copy'. If that is
* true, then a deep copy is made of the parameter and the parameter itself
* is not touched. If the value is false, then the parameter is stored
* directly in the dns_c_ctx_t structure, and the client looses ownership
* of it. ISC_R_NOMEMORY is a possible return value for many of these
* functions.
*
*/
const char *newval);
const char *newval);
const char *newval);
const char *newval);
const char *newcpval,
/*
* Accessor functions for the various fields in the config structure. The
* value of the field is copied into the location pointed to by the RETVAL
* paramater and ISC_R_SUCCESS is returned. The caller must not modify the
* returned value, and should copy the value if it needs to hold on to it.
*
* If the value has not been set in the config structure, then
* ISC_R_NOTFOUND is returned and the location pointed to by the RETVAL
* paramater is not modified (i.e. the library assumes no particular
* defaults for any unset values).
*/
char **retval);
short *port);
dns_c_lstnlist_t **ll);
#endif /* DNS_CONFIG_CONFCTX_H */