/*
* $Id: config_file.h,v 1.2 2001/07/13 18:10:10 ljb Exp $
*/
#ifndef _LCONFIG_H
#define _LCONFIG_H
#include <mrt.h>
#ifndef MAXHOSTNAMELEN
#define MAXHOSTNAMELEN 256
#endif
typedef struct _config_module_t {
char *name;
void_fn_t call_fn;
void *arg;
u_long flags; /* CF_WAIT, CF_DELIM, etc */
} config_module_t;
#define CF_WAIT 0x01 /* need to wait for thread to signal us data is ready */
#define CF_DELIM 0x02 /* we' somethings like router_bgp and need a ! delimiter */
#define CF_RAW 0x04 /* special control characters -- no interpretae */
typedef struct _config_t {
char *filename;
int line; /* when parsing file, current lineno */
trace_t *trace;
LINKED_LIST *ll_modules; /* linked list of config modules */
pthread_mutex_t ll_modules_mutex_lock;
pthread_cond_t cond;
pthread_mutex_t mutex_cond_lock;
int ignore_errors; /* flag if we should exit after encountering
* confi file error */
buffer_t *answer;
pthread_mutex_t mutex_lock; /* only one can enter config mode */
int timeout_min; /* exec timeout value (min) */
int timeout_sec; /* exec timeout value (sec) */
int port; /* uii port number */
int show_password; /* show clear text password */
int reading_from_file;
int state_eof; /* this is a flag to enable old "!" state EOF */
} config_t;
typedef struct _config_command_t {
char *name;
int_fn_t call_fn;
char *format;
char *description;
} config_command_t;
int config_from_file (trace_t *trace, char *filename);
int config_from_file2 (trace_t *trace, char *filename);
int config_add_module (int wait_flag, char *name, void_fn_t call_fn, void *arg);
int config_del_module (int flags, char *name, void_fn_t call_fn, void *arg);
void config_notice (int flag, uii_connection_t *uii, char *format, ...);
int start_config (uii_connection_t *uii);
void end_config (uii_connection_t *uii);
void config_add_output (char *format, ...);
int init_config (trace_t *tr);
int get_alist_options (char *options, prefix_t ** wildcard, int *refine,
int *exact);
/* these two functions are reffered from datadist */
void get_comment_config (char *comment);
void get_debug_config (void);
/* from tpd */
int show_config (uii_connection_t * uii);
int config_write (uii_connection_t * uii);
extern config_t CONFIG;
#endif /* _LCONFIG_H */
syntax highlighted by Code2HTML, v. 0.9.1