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