modules/ca/ca_defs.h

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following functions.

   1 /***************************************
   2   $Revision: 
   3 
   4   CA module: definitions header file for the configuration module.
   5 
   6   Status: NOT REVIEWED, NOT TESTED
   7 
   8   Author(s):       Ambrose Magee
   9 
  10 ******************/ /******************
  11 Modification History:
  12 
  13 ******************/
  14 
  15 /************************************
  16   Copyright (c) 2000,2001,2002                    RIPE NCC
  17  
  18   All Rights Reserved
  19   
  20   Permission to use, copy, modify, and distribute this software and its
  21   documentation for any purpose and without fee is hereby granted,
  22   provided that the above copyright notice appear in all copies and that
  23   both that copyright notice and this permission notice appear in
  24   supporting documentation, and that the name of the author not be
  25   used in advertising or publicity pertaining to distribution of the
  26   software without specific, written prior permission.
  27   
  28   THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  29   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS; IN NO EVENT SHALL
  30   AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
  31   DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
  32   AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  33   OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  34  ***************************************/
  35 
  36 #ifndef CA_DEFS
  37 #define CA_DEFS
  38 
  39 /************************************************************************
  40  * This is the definitions header file for the configuration module.  It
  41  * includes the definitions of data structures, external declarations and
  42  * definitions, definitions of sybolic constants.
  43  *
  44  ************************************************************************/
  45 
  46 #include <pthread.h>
  47 #include <glib.h>
  48 
  49 #ifdef __cplusplus
  50 extern "C" {
  51 #endif
  52 
  53 /* Number of configurations variables. */
  54 #define VARS 123
  55 
  56 #define SCOPE_GLOBAL 1
  57 #define SCOPE_LOCAL 99
  58 
  59 /* 
  60  * Define the length of a string to be 160 to cope with the 
  61  * copyright statement.
  62  *
  63  */
  64 #define STRLENGTH 256
  65 
  66 /*
  67         * Define the length of strings to cope with the values of 
  68  * various types of string variables.
  69         */
  70 #define STRLENGTH_XS 40
  71 #define STRLENGTH_S 80
  72 #define STRLENGTH_M 160
  73 #define STRLENGTH_L 320
  74 #define STRLENGTH_XL 640
  75 #define STRLENGTH_XXL 2560
  76 
  77 /*
  78  *  Define the maximum number of sources
  79  *
  80  */
  81 #define CA_MAXSOURCES  100
  82 
  83 
  84 /**********************************************
  85  * Default values for the SOURCE variables              *
  86         *                                                                                                                       *
  87  **********************************************/
  88 
  89  #define CA_DEFHOST "rowan"                                             
  90  #define CA_DEFPORT "4343"
  91  #define CA_DEFUSER "dbase"                                             
  92  #define CA_DEFPASSWORD "encrypt1"                              
  93  #define CA_DEFDBNAME   "default-db"                    
  94                                                                                                                         
  95 
  96 
  97 /**********************************************
  98  * Defintion of the dictionary structures.              *
  99         *                                                                                                                       *
 100  **********************************************/
 101 
 102 typedef struct dict_s   {
 103                                 char varName[STRLENGTH];
 104                                 char varSym[STRLENGTH];
 105                                 char varType[STRLENGTH];
 106                                 int varNum;
 107                                 int varMandatory;
 108                                 int varScope;
 109 } dict_t;
 110 
 111 extern dict_t dictionary[];
 112 
 113 
 114 
 115 
 116 /**********************************************
 117  * Definition of the values structures.                 *
 118  *                                                                                                                      *
 119         **********************************************/
 120 
 121 typedef struct values_s {
 122                            GString *strPtr;     /* Pointer to the GString that contains the value. */
 123                                 void *valPtr;   /* Pointer to the actual value. */
 124 } values_t;                                                                     
 125 
 126 /*
 127  * "extern" definition of variables that are defined elsewhere.
 128  */
 129 
 130 
 131 extern values_t globals[];
 132 extern values_t locals[];
 133 
 134 /*
 135  * "extern" definition of configuration variables, defined elsewhere.
 136  */
 137 extern values_t confVars[];
 138 
 139 /* Mutex lock; used for synchronising changes. */
 140 pthread_mutex_t Lock;
 141 
 142 /* 
 143         * New value of the bindport.
 144         * This must be a global variable.
 145  * This variable is no longer needed.
 146  * char newPort[16];
 147         */
 148 
 149 /*
 150  * The following is needed for the SOURCE variable.  First,
 151  * we define the "database" structure.  Then, we define the
 152  * structure of an element of the linked list.  Lastly, we 
 153  * define the linked list itself.
 154  */
 155 
 156 typedef struct ca_database_s    {
 157 
 158                         char host[64];
 159                         int port;
 160                         char user[16];
 161                         char password[9];
 162                         char dbName[16];
 163                 } ca_database_t;
 164 
 165 typedef struct ca_mirror_s              {
 166                         char host[64];
 167                         int port;
 168                         char log[64];
 169                         int delay;
 170                         int protocolVer;
 171                         char mrName[16];
 172                 } ca_mirror_t;
 173 
 174 typedef struct ca_ripadmin_s    {
 175                         char host[64];
 176                         int port;
 177                         char user[16];
 178                         char password[9];
 179                         char tableName[72];
 180                 } ca_ripadmin_t;
 181 
 182 extern ca_database_t ripe;
 183 extern ca_database_t arin;
 184 extern ca_database_t radb;
 185 
 186 typedef struct ca_database_list_s               {
 187                         char name[16];  
 188                         ca_database_t db;
 189                         int opMode;
 190                         ca_mirror_t nrtm;
 191                         int updPort;
 192                         char canupd[2];
 193                         char deflook[2];
 194                 } ca_database_list_t;
 195 
 196 /*
 197         * Define the type of a source.
 198  * This is the name of a source and
 199  * the details of the database which 
 200  * makes this source.
 201  */
 202 typedef struct ca_dbSource_s    {
 203                         char name[16];
 204                         ca_database_t db;
 205                         int opMode;
 206                         ca_mirror_t nrtm;
 207                         int updPort;
 208                         char canupd[2];
 209                         char deflook[2];
 210                 } ca_dbSource_t;
 211 
 212 /*
 213  * Define the source handle:
 214  * this is a pointer to a source;
 215  * i.e. it is of type ca_dbSource_t.
 216  */
 217 typedef ca_dbSource_t ca_SrcHdl_t;
 218 
 219 
 220 /*
 221  * Define an updateSource.  This is used by dbupdate.
 222  *
 223  */
 224 typedef struct ca_updDbSource_s {
 225                         char name[16];
 226                         ca_database_t updDb;
 227                         char whoisd_host[32];
 228                         int qryPort;
 229                         int updPort;
 230                 } ca_updDbSource_t;
 231 
 232 
 233 
 234 extern ca_database_list_t ripeComponent;
 235 extern ca_database_list_t arinComponent;
 236 extern ca_database_list_t radbComponent;
 237 
 238 /*
 239  * typedef struct GSList {
 240         *       gpointer src;           
 241         *       GSList *next;
 242         *       } ca_source_t;
 243  */
 244  /* gpointer src;               This points to a ca_database_list_t varialbe */
 245 
 246 
 247 /*************************************************************
 248  * Definition of the default values for the SOURCE variable.    *
 249  *                                                                                                                                                              *
 250  *************************************************************/
 251 
 252 /*
 253  * char ca_defHost[64];
 254  * char ca_defPort[16];
 255  * char ca_defUser[16];
 256  * char ca_defPassword[9];
 257  * char ca_defdbName[16];
 258  */
 259 
 260 /*
 261  * extern char ca_defPort[16];
 262  * extern char ca_defHost[64];
 263  * extern char ca_defUser[16];
 264  * extern char ca_defPassword[9];
 265  * extern char ca_defdbName[16];
 266  */
 267 
 268 /*
 269  * The linked-list of sources.
 270  *
 271  */
 272 extern GSList *sourceList;
 273 
 274 /*
 275         * The linked-list of databases and mirrors used by ca_readSources()
 276  */
 277 extern GSList *dbList;
 278 extern GSList *nrtmList;
 279 
 280 /*
 281  */
 282 
 283 /*
 284  * extern ca_source_t *srcList;
 285  */
 286 
 287 /*
 288  * A varialbe of type GSList
 289  */
 290 extern ca_dbSource_t *testSource;
 291 
 292 
 293 /*
 294  * 20000609
 295  * Experiment:
 296  * define the variable mySrcList as type GSList;
 297  * use the extern modifier and put the "real" definition
 298  * of the variable elsewhere.
 299  *
 300  * extern GSList *mySrcList;
 301  */
 302 
 303 /*
 304         * The test configuration file.
 305  * This is defined using a constant string, cf. Oualline, p.145.
 306  */
 307 extern const char *testFile;
 308 extern const char *tempFile;
 309 extern const char *dictFile;
 310 extern const char *confFile;
 311 extern const char *sourcesFile;
 312 
 313 /* 
 314  * Value returned by ca_getStorageLocation if the symbol for
 315  * a configuration variable cannot be found.
 316  *
 317         * This value is also returned by ca_getType, if it cannot map 
 318  * the name of a configuration variable to a data type.
 319  *
 320  */
 321 #define NOT_FOUND -1    
 322 #define INCOMPLETE -1
 323 
 324 /*
 325  * Definition of the identifiers used in the sources configuration file.
 326  */
 327 #define DATABASE_KEY    "DATABASE"
 328 #define NRTM_KEY        "NRTM"
 329 #define SOURCE_KEY "SOURCE"
 330 
 331 /*
 332  * Symbolic constants defined to represent data types.
 333 
 334  * #define CA_INT                       11
 335  * #define CA_STRING            12
 336  * #define CA_DIRLIST   13
 337  * #define CA_BOOLEAN   14
 338  * #define CA_SOURCETYPE                15
 339         */
 340 
 341 extern ca_dbSource_t *theSrc;
 342 
 343 /*
 344         * Macros and const char * definitions for warning and error 
 345  * messages.
 346  */
 347 
 348 extern const char *configWarningStr;
 349 extern const char *configError_1Str;
 350 extern const char *configError_2Str;
 351 extern const char *configVarChk_OK_Str;
 352 
 353 
 354 #ifdef __cplusplus
 355 }
 356 #endif
 357 
 358 
 359 #endif /* CA_DEFS */

/* [<][>][^][v][top][bottom][index][help] */