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

# Content
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