ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/ermyth/include/confparse.h
Revision: 1.1
Committed: Thu Jul 19 08:24:50 2007 UTC (16 years, 10 months ago) by pippijn
Content type: text/plain
Branch: MAIN
Log Message:
initial import. the most important changes since Atheme are:
- fixed many memory leaks
- fixed many bugs
- converted to C++ and use more STL containers
- added a (not very enhanced yet) perl module
- greatly improved XML-RPC speed
- added a JSON-RPC module with code from json-cpp
- added a valgrind memcheck module to operserv
- added a more object oriented base64 implementation
- added a specialised unit test framework
- improved stability
- use gettimeofday() if available
- reworked adding/removing commands
- MemoServ IGNORE DEL can now remove indices

File Contents

# User Rev Content
1 pippijn 1.1 /*
2     * Copyright © 2005 William Pitcock, et al.
3     * Rights to this code are as documented in doc/LICENSE.
4     *
5     * Data structures for flags to bitmask processing routines.
6     *
7     * $Id: confparse.h 8375 2007-06-03 20:03:26Z pippijn $
8     */
9    
10     #ifndef CONFPARSE_H
11     #define CONFPARSE_H
12    
13     struct config_file_t
14     {
15     char *cf_filename;
16     config_entry_t *cf_entries;
17     config_file_t *cf_next;
18     };
19    
20     struct config_entry_t
21     {
22     config_file_t *ce_fileptr;
23    
24     int ce_varlinenum;
25     char *ce_varname;
26     char *ce_vardata;
27     int ce_vardatanum;
28     int ce_fileposstart;
29     int ce_fileposend;
30    
31     int ce_sectlinenum;
32     config_entry_t *ce_entries;
33    
34     config_entry_t *ce_prevlevel;
35    
36     config_entry_t *ce_next;
37     };
38    
39     struct Token
40     {
41     const char *text;
42     int value;
43     };
44    
45     struct ConfTable
46     {
47     char *name;
48     int rehashable;
49     int (*handler) (config_entry_t *);
50     char *str_val;
51     int *int_val;
52     };
53    
54     extern void init_newconf (void);
55     extern struct ConfTable *find_top_conf (char *name);
56     extern struct ConfTable *find_conf_item (char *name, list_t *conflist);
57     extern void add_top_conf (char *name, int (*handler) (config_entry_t *ce));
58     extern void add_conf_item (char *name, list_t *conflist, int (*handler) (config_entry_t *ce));
59     extern void del_top_conf (char *name);
60     extern void del_conf_item (char *name, list_t *conflist);
61     extern int subblock_handler (config_entry_t *ce, list_t *entries);
62    
63     extern int token_to_value (struct Token token_table[], char *token);
64     /* special return values for token_to_value */
65     #define TOKEN_UNMATCHED -1
66     #define TOKEN_ERROR -2
67    
68     #endif