## include/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 */

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