modules/ca/ca_defs.h

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

FUNCTIONS

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                              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 120
  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 1280
  76 
  77 
  78 /**********************************************
  79  * Default values for the SOURCE variables              *
  80         *                                                                                                                       *
  81  **********************************************/
  82 
  83  #define CA_DEFHOST "rowan"                                             
  84  #define CA_DEFPORT "4343"
  85  #define CA_DEFUSER "dbase"                                             
  86  #define CA_DEFPASSWORD "encrypt1"                              
  87  #define CA_DEFDBNAME   "default-db"                    
  88                                                                                                                         
  89 
  90 
  91 /**********************************************
  92  * Defintion of the dictionary structures.              *
  93         *                                                                                                                       *
  94  **********************************************/
  95 
  96 typedef struct dict_s   {
  97                                 char varName[STRLENGTH];
  98                                 char varSym[STRLENGTH];
  99                                 char varType[STRLENGTH];
 100                                 int varScope;
 101                                 int varNum;
 102 } dict_t;
 103 
 104 extern dict_t dictionary[];
 105 
 106 
 107 
 108 
 109 /**********************************************
 110  * Definition of the values structures.                 *
 111  *                                                                                                                      *
 112         **********************************************/
 113 
 114 typedef struct values_s {
 115                                 char *strPtr;   /* Pointer to the string that contains the value. */
 116                                 void *valPtr;   /* Pointer to the actual value. */
 117 } values_t;                                                                     
 118 
 119 /*
 120  * "extern" definition of variables that are defined elsewhere.
 121  */
 122 
 123 
 124 extern values_t globals[];
 125 extern values_t locals[];
 126 
 127 /*
 128  * "extern" definition of configuration variables, defined elsewhere.
 129  */
 130 extern values_t confVars[];
 131 
 132 /* Mutex lock; used for synchronising changes. */
 133 pthread_mutex_t Lock;
 134 
 135 /* 
 136         * New value of the bindport.
 137         * This must be a global variable.
 138         */
 139 
 140 char newPort[16];
 141 
 142 /*
 143  * The following is needed for the SOURCE variable.  First,
 144  * we define the "database" structure.  Then, we define the
 145  * structure of an element of the linked list.  Lastly, we 
 146  * define the linked list itself.
 147  */
 148 
 149 typedef struct ca_database_s    {
 150 
 151                         char host[64];
 152                         int port;
 153                         char user[16];
 154                         char password[9];
 155                         char dbName[16];
 156                 } ca_database_t;
 157 
 158 typedef struct ca_mirror_s              {
 159                         char host[64];
 160                         int port;
 161                         char log[64];
 162                         int delay;
 163                         int protocolVer;
 164                         char mrName[16];
 165                 } ca_mirror_t;
 166 
 167 typedef struct ca_ripadmin_s    {
 168                         char host[64];
 169                         int port;
 170                         char user[16];
 171                         char password[9];
 172                         char tableName[16];
 173                 } ca_ripadmin_t;
 174 
 175 extern ca_database_t ripe;
 176 extern ca_database_t arin;
 177 extern ca_database_t radb;
 178 
 179 typedef struct ca_database_list_s               {
 180                         char name[16];  
 181                         ca_database_t db;
 182                         int opMode;
 183                         ca_mirror_t nrtm;
 184                         int updPort;
 185                         char canupd[2];
 186                         char deflook[2];
 187                 } ca_database_list_t;
 188 
 189 /*
 190         * Define the type of a source.
 191  * This is the name of a source and
 192  * the details of the database which 
 193  * makes this source.
 194  */
 195 typedef struct ca_dbSource_s    {
 196                         char name[16];
 197                         ca_database_t db;
 198                         int opMode;
 199                         ca_mirror_t nrtm;
 200                         int updPort;
 201                         char canupd[2];
 202                         char deflook[2];
 203                 } ca_dbSource_t;
 204 
 205 /*
 206  * Define the source handle:
 207  * this is a pointer to a source;
 208  * i.e. it is of type ca_dbSource_t.
 209  */
 210 typedef ca_dbSource_t ca_SrcHdl_t;
 211 
 212 
 213 /*
 214  * Define an updateSource.  This is used by dbupdate.
 215  *
 216  */
 217 typedef struct ca_updDbSource_s {
 218                         char name[16];
 219                         ca_database_t updDb;
 220                         char whoisd_host[32];
 221                         int qryPort;
 222                         int updPort;
 223                 } ca_updDbSource_t;
 224 
 225 
 226 
 227 extern ca_database_list_t ripeComponent;
 228 extern ca_database_list_t arinComponent;
 229 extern ca_database_list_t radbComponent;
 230 
 231 /*
 232  * typedef struct GSList {
 233         *       gpointer src;           
 234         *       GSList *next;
 235         *       } ca_source_t;
 236  */
 237  /* gpointer src;               This points to a ca_database_list_t varialbe */
 238 
 239 
 240 /*************************************************************
 241  * Definition of the default values for the SOURCE variable.    *
 242  *                                                                                                                                                              *
 243  *************************************************************/
 244 
 245 /*
 246  * char ca_defHost[64];
 247  * char ca_defPort[16];
 248  * char ca_defUser[16];
 249  * char ca_defPassword[9];
 250  * char ca_defdbName[16];
 251  */
 252 
 253 /*
 254  * extern char ca_defPort[16];
 255  * extern char ca_defHost[64];
 256  * extern char ca_defUser[16];
 257  * extern char ca_defPassword[9];
 258  * extern char ca_defdbName[16];
 259  */
 260 
 261 /*
 262  * The linked-list of sources.
 263  *
 264  */
 265 extern GSList *sourceList;
 266 
 267 /*
 268         * The linked-list of databases and mirrors used by ca_readSources()
 269  */
 270 extern GSList *dbList;
 271 extern GSList *nrtmList;
 272 
 273 /*
 274  */
 275 
 276 /*
 277  * extern ca_source_t *srcList;
 278  */
 279 
 280 /*
 281  * A varialbe of type GSList
 282  */
 283 extern ca_dbSource_t *testSource;
 284 
 285 
 286 /*
 287  * 20000609
 288  * Experiment:
 289  * define the variable mySrcList as type GSList;
 290  * use the extern modifier and put the "real" definition
 291  * of the variable elsewhere.
 292  *
 293  * extern GSList *mySrcList;
 294  */
 295 
 296 /*
 297         * The test configuration file.
 298  * This is defined using a constant string, cf. Oualline, p.145.
 299  */
 300 extern const char *testFile;
 301 extern const char *tempFile;
 302 extern const char *dictFile;
 303 extern const char *confFile;
 304 extern const char *sourcesFile;
 305 
 306 /* 
 307  * Value returned by ca_getStorageLocation if the symbol for
 308  * a configuration variable cannot be found.
 309  *
 310         * This value is also returned by ca_getType, if it cannot map 
 311  * the name of a configuration variable to a data type.
 312  *
 313  */
 314 #define NOT_FOUND -1    
 315 
 316 /*
 317  * Definition of the identifiers used in the sources configuration file.
 318  */
 319 #define DATABASE_KEY    "DATABASE"
 320 #define NRTM_KEY        "NRTM"
 321 #define SOURCE_KEY "SOURCE"
 322 
 323 /*
 324  * Symbolic constants defined to represent data types.
 325 
 326  * #define CA_INT                       11
 327  * #define CA_STRING            12
 328  * #define CA_DIRLIST   13
 329  * #define CA_BOOLEAN   14
 330  * #define CA_SOURCETYPE                15
 331         */
 332 
 333 extern ca_dbSource_t *theSrc;
 334 
 335 #ifdef __cplusplus
 336 }
 337 #endif
 338 
 339 
 340 #endif /* CA_DEFS */

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