modules/ca/ca_defs.h
/* [<][>][^][v][top][bottom][index][help] */
FUNCTIONS
This source file includes following functions.
1 #ifndef CA_DEFS
2 #define CA_DEFS
3
4 /************************************************************************
5 * This is the definitions header file for the configuration module. It
6 * includes the definitions of data structures, external declarations and
7 * definitions, definitions of sybolic constants.
8 *
9 ************************************************************************/
10
11 #include <pthread.h>
12 #include <glib.h>
13
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17
18 /* Number of configurations variables. */
19 #define VARS 90
20
21 #define SCOPE_GLOBAL 1
22 #define SCOPE_LOCAL 99
23
24 /*
25 * Define the length of a string to be 160 to cope with the
26 * copyright statement.
27 *
28 */
29 #define STRLENGTH 160
30
31 /*
32 * Define the length of strings to cope with the values of
33 * various types of string variables.
34 */
35 #define STRLENGTH_S 40
36 #define STRLENGTH_M 80
37 #define STRLENGTH_L 160
38 #define STRLENGTH_XL 320
39 #define STRLENGTH_XXL 640
40
41
42 /**********************************************
43 * Default values for the SOURCE variables *
44 * *
45 **********************************************/
46
47 #define CA_DEFHOST "rowan"
48 #define CA_DEFPORT "4343"
49 #define CA_DEFUSER "dbase"
50 #define CA_DEFPASSWORD "encrypt1"
51 #define CA_DEFDBNAME "default-db"
52
53
54
55 /**********************************************
56 * Defintion of the dictionary structures. *
57 * *
58 **********************************************/
59
60 typedef struct dict_s {
61 char varName[STRLENGTH];
62 char varSym[STRLENGTH];
63 char varType[STRLENGTH];
64 int varScope;
65 int varNum;
66 } dict_t;
67
68 extern dict_t dictionary[];
69
70
71
72
73 /**********************************************
74 * Definition of the values structures. *
75 * *
76 **********************************************/
77
78 typedef struct values_s {
79 char *strPtr; /* Pointer to the string that contains the value. */
80 void *valPtr; /* Pointer to the actual value. */
81 } values_t;
82
83 /*
84 * "extern" definition of variables that are defined elsewhere.
85 */
86
87
88 extern values_t globals[];
89 extern values_t locals[];
90
91 /*
92 * "extern" definition of configuration variables, defined elsewhere.
93 */
94 extern values_t confVars[];
95
96 /* Mutex lock; used for synchronising changes. */
97 pthread_mutex_t Lock;
98
99 /*
100 * New value of the bindport.
101 * This must be a global variable.
102 */
103
104 char newPort[16];
105
106 /*
107 * The following is needed for the SOURCE variable. First,
108 * we define the "database" structure. Then, we define the
109 * structure of an element of the linked list. Lastly, we
110 * define the linked list itself.
111 */
112
113 typedef struct ca_database_s {
114
115 char host[64];
116 int port;
117 char user[16];
118 char password[9];
119 char dbName[16];
120 } ca_database_t;
121
122 typedef struct ca_mirror_s {
123 char host[64];
124 int port;
125 char log[64];
126 int delay;
127 int protocolVer;
128 } ca_mirror_t;
129
130 typedef struct ca_ripadmin_s {
131 char host[64];
132 int port;
133 char user[16];
134 char password[9];
135 char tableName[16];
136 } ca_ripadmin_t;
137
138 extern ca_database_t ripe;
139 extern ca_database_t arin;
140 extern ca_database_t radb;
141
142 typedef struct ca_database_list_s {
143 char name[16];
144 ca_database_t db;
145 int opMode;
146 ca_mirror_t nrtm;
147 int updPort;
148 char canupd[2];
149 char deflook[2];
150 } ca_database_list_t;
151
152 /*
153 * Define the type of a source.
154 * This is the name of a source and
155 * the details of the database which
156 * makes this source.
157 */
158 typedef struct ca_dbSource_s {
159 char name[16];
160 ca_database_t db;
161 int opMode;
162 ca_mirror_t nrtm;
163 int updPort;
164 char canupd[2];
165 char deflook[2];
166 } ca_dbSource_t;
167
168 /*
169 * Define the source handle:
170 * this is a pointer to a source;
171 * i.e. it is of type ca_dbSource_t.
172 */
173 typedef ca_dbSource_t ca_SrcHdl_t;
174
175 extern ca_database_list_t ripeComponent;
176 extern ca_database_list_t arinComponent;
177 extern ca_database_list_t radbComponent;
178
179 /*
180 * typedef struct GSList {
181 * gpointer src;
182 * GSList *next;
183 * } ca_source_t;
184 */
185 /* gpointer src; This points to a ca_database_list_t varialbe */
186
187
188 /*************************************************************
189 * Definition of the default values for the SOURCE variable. *
190 * *
191 *************************************************************/
192
193 /*
194 * char ca_defHost[64];
195 * char ca_defPort[16];
196 * char ca_defUser[16];
197 * char ca_defPassword[9];
198 * char ca_defdbName[16];
199 */
200
201 /*
202 * extern char ca_defPort[16];
203 * extern char ca_defHost[64];
204 * extern char ca_defUser[16];
205 * extern char ca_defPassword[9];
206 * extern char ca_defdbName[16];
207 */
208
209 /*
210 * The linked-list of sources.
211 *
212 */
213 extern GSList *sourceList;
214
215 /*
216 * extern ca_source_t *srcList;
217 */
218
219 /*
220 * A varialbe of type GSList
221 */
222 extern ca_dbSource_t *testSource;
223
224
225 /*
226 * 20000609
227 * Experiment:
228 * define the variable mySrcList as type GSList;
229 * use the extern modifier and put the "real" definition
230 * of the variable elsewhere.
231 *
232 * extern GSList *mySrcList;
233 */
234
235 /*
236 * The test configuration file.
237 * This is defined using a constant string, cf. Oualline, p.145.
238 */
239 extern const char *testFile;
240 extern const char *tempFile;
241 extern const char *dictFile;
242 extern const char *confFile;
243
244 /*
245 * Value returned by ca_getStorageLocation if the symbol for
246 * a configuration variable cannot be found.
247 *
248 * This value is also returned by ca_getType, if it cannot map
249 * the name of a configuration variable to a data type.
250 *
251 */
252 #define NOT_FOUND -1
253
254 /*
255 * Symbolic constants defined to represent data types.
256
257 * #define CA_INT 11
258 * #define CA_STRING 12
259 * #define CA_DIRLIST 13
260 * #define CA_BOOLEAN 14
261 * #define CA_SOURCETYPE 15
262 */
263
264 extern ca_dbSource_t *theSrc;
265
266 #ifdef __cplusplus
267 }
268 #endif
269
270
271 #endif /* CA_DEFS */