1 | /*************************************** 2 | $Revision: 3 | 4 | CA module: Values defined at compile time. 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 | #include "rip.h" 37 | 38 | /* 39 | * int bport = 43; 40 | */ 41 | 42 | GSList *sourceList = NULL; 43 | 44 | GSList *dbList = NULL; 45 | 46 | GSList *nrtmList = NULL; 47 | 48 | /* 49 | * 20000609 Experiment: The GSList variable, "mySrcList", is defined in the 50 | * ca_defs.h file (with an 'extern' modifier). GSList *mySrcList = NULL; 51 | */ 52 | 53 | /* 54 | * int testmode = 0; 55 | */ 56 | 57 | /* 58 | * values_t globals[] = { {"43", &bport}, {"/ncc/db2/doc/HELP", 59 | * "/ncc/db2/doc/HELP"}, {"% Rights restricted by copyright. See 60 | * http://www.ripe.net/db/dbcopyright.html", "% Rights restricted by 61 | * copyright. See http://www.ripe.net/db/dbcopyright.html"}, {"SourceList", 62 | * NULL}, {"0", &testmode}, {"1Bt9RNSMWcA.Y", "1Bt9RNSMWcA.Y"}, 63 | * {"/ncc/db2/doc/WHOIS-HELP", "/ncc/db2/doc/WHOIS-HELP"}, 64 | * {"/ncc/db2/doc/AUTO-DBM-HELP", "/ncc/db2/doc/AUTO-DBM-HELP"}, 65 | * {"/ncc/db2/etc/attr-desc.config", "/ncc/db2/etc/attr-desc.config"}, 66 | * {"RIPE", "RIPE"}, {"RIPE /ncc/db2/data/ripe/ripe.db SPLIT", "RIPE 67 | * /ncc/db2/data/ripe/ripe.db SPLIT"}, {"RIPE", "RIPE"}, 68 | * {"SourceList", NULL}, {"dbase", "dbase"}, {"/ncc/db2/log/qry/qrylog", 69 | * "/ncc/db2/log/qry/qrylog"}, {"/ncc/db2/log/qry/qry2log", 70 | * "/ncc/db2/log/qry/qry2log"}, {"/ncc/db2/log/err/errlog", 71 | * "/ncc/db2/log/err/errlog"}, {"/ncc/db2/log/audit/auditlog", 72 | * "/ncc/db2/log/audit/auditlog"}, {"/ncc/db2/log/upd", "/ncc/db2/log/upd"}, 73 | * {"/ncc/db2/log/ack", "/ncc/db2/log/ack"}, {"/ncc/db2/locks", 74 | * "/ncc/db2/locks"}, {"whoisd.pid", "whoisd.pid"}, {"STOPUPDATES", 75 | * "STOPUPDATES"}, {"CLEANDB.LOCK", "CLEANDB.LOCK"}, 76 | * {"/ncc/db2/serials/current", "/ncc/db2/serials/current"}, 77 | * {"/ncc/db2/serials/old", "/ncc/db2/serials/old"}, 78 | * {"/ncc/db2/serials/incoming", "/ncc/db2/serials/incoming"}, {"180", 79 | * "180"}, {"RIPE-NCC-HM-MNT ", "RIPE-NCC-HM-MNT "}, {"127.0.0.1", 80 | * "127.0.0.1"}, {"193.0.0.1[345678][0-9]", "193.0.0.1[345678][0-9]"}, 81 | * {"195.88.156.1", "195.88.156.1"}, {"/ncc/db2/tmp", "/ncc/db2/tmp"}, 82 | * {"/usr/local/bin/pgpv", "/usr/local/bin/pgpv"}, {"/usr/local/bin/pgpk", 83 | * "/usr/local/bin/pgpk"}, {"/ncc/db2/.pgp", "/ncc/db2/.pgp"}, 84 | * {"/var/qmail/bin/qmail-inject -fripe-dbm", "/var/qmail/bin/qmail-inject 85 | * -fripe-dbm"}, {"8096", "8096"}, {"2097152", "2097152"}, {"2", "2"}, 86 | * {"ripe-dbm@ripe.net", "ripe-dbm@ripe.net"}, {"ripe-dbm@ripe.net", 87 | * "ripe-dbm@ripe.net"}, {"auto-dbm@ripe.net", "auto-dbm@ripe.net"}, 88 | * {"nostrict", "nostrict"}, {"% No entries found for the selected 89 | * source(s).", "% No entries found for the selected source(s)."}, {"Subject: 90 | * RIPE RR: Addition of overlapping routes", "Subject: RIPE RR: Addition of 91 | * overlapping routes"}, {"Subject: RIPE RR: Removal of overlapping routes", 92 | * "Subject: RIPE RR: Removal of overlapping routes"}, {"The addition of 93 | * your route object ... ", "The addition of your route object ... "}, {"The 94 | * deletion of your route object ... ", "The deletion of your route object 95 | * ... "}, {"created new overlaps with the following routes ...", "created 96 | * new overlaps with the following routes ..."}, {"removed the overlaps with 97 | * the following routes ...", "removed the overlaps with the following routes 98 | * ..."}, {"Subject: RIPE RR: Addition of overlapping routes", "Subject: RIPE 99 | * RR: Addition of overlapping routes"}, {"Subject: RIPE RR: Removal of 100 | * overlapping routes", "Subject: RIPE RR: Removal of overlapping routes"}, 101 | * {"The addition of the route object ... ", "The addition of the route 102 | * object ... "}, {"The deletion of the route object ... ", "The deletion of 103 | * the route object ... "}, {"created new overlaps with your following routes 104 | * ...", "created new overlaps with your following routes ..."}, {"removed 105 | * the overlaps with your following routes ...", "removed the overlaps with 106 | * your following routes ..."}, {"Your e-mail:", "Your e-mail:"}, {"From: 107 | * RIPE Database Management <$HUMAILBOX>", "From: RIPE Database Management 108 | * <$HUMAILBOX>"}, {"From: RIPE Database Management <$HUMAILBOX>", "From: 109 | * RIPE Database Management <$HUMAILBOX>"}, {"Subject: SUCCEEDED: $SUBJECT", 110 | * "Subject: SUCCEEDED: $SUBJECT"}, {"Help file requested so body of message 111 | * ignored.", "Help file requested so body of message ignored."}, {"Objects 112 | * that just generated a WARNING have been updated as shown.", "Objects that 113 | * just generated a WARNING have been updated as shown."}, {"No errors were 114 | * found in your database update. Congratulations.", "No errors were found 115 | * in your database update. Congratulations."}, {"RIPE Database Maintenance 116 | * Department (Automatic Section)", "RIPE Database Maintenance Department 117 | * (Automatic Section)"}, {"This is to notify you that some object(s) in the 118 | * RIPE database", "This is to notify you that some object(s) in the RIPE 119 | * database"}, {"The update causing these changes had the following mail 120 | * headers:", "The update causing these changes had the following mail 121 | * headers:"}, {"The update causing these changes came from the following 122 | * host:", "The update causing these changes came from the following host:"}, 123 | * {"From: RIPE Database Notifications <$HUMAILBOX>", "From: RIPE Database 124 | * Notifications <$HUMAILBOX>"}, {"From: RIPE Database Maintainer Forwarding 125 | * <$HUMAILBOX>", "From: RIPE Database Maintainer Forwarding <$HUMAILBOX>"}, 126 | * {"This is to notify you that some objects in which you are mentioned as", 127 | * "This is to notify you that some objects in which you are mentioned as"}, 128 | * {"The mail message causing these failures had the following mail 129 | * headers:", "The mail message causing these failures had the following mail 130 | * headers:"}, {"The update causing these failures came from the following 131 | * host:", "The update causing these failures came from the following 132 | * host:"}, {"From: RIPE Database Maintainer Creation <$HUMAILBOX>", "From: 133 | * RIPE Database Maintainer Creation <$HUMAILBOX>"}, {"A maintainer object is 134 | * requested by:", "A maintainer object is requested by:"}, {"* A C C E S S D 135 | * E N I E D *", "* A C C E S S D E N I E D *"}, {"The object shown below 136 | * is NOT in the RIPE database.", "The object shown below is NOT in the RIPE 137 | * database."}, {"Referred query to host $REFERHOST at port $REFERPORT", 138 | * "Referred query to host $REFERHOST at port $REFERPORT"}, {"Referral loop 139 | * detected when querying ", "Referral loop detected when querying "}, 140 | * {"Referred query to host $REFERHOST at port $REFERPORT", "Referred query 141 | * to host $REFERHOST at port $REFERPORT"}, {"Result TRUNCATED. Answer lenght 142 | * exceeded limit.", "Result TRUNCATED. Answer lenght exceeded limit."}, 143 | * {"%%% End of referred query result", "%%% End of referred query result"}, 144 | * {"10", "10"}, {"2000", "2000"}, {"Copyright 145 | * (c)1992/1993/1994/1995/1996/1997/1998/1999 by RIPE NCC ", "Copyright 146 | * (c)1992/1993/1994/1995/1996/1997/1998/1999 by RIPE NCC "}, {"IE ie", "IE 147 | * ie"} }; values_t locals[] = { {"43", &bport}, {"/ncc/db2/doc/HELP", 148 | * "/ncc/db2/doc/HELP"}, {"% Rights restricted by copyright. See 149 | * http://www.ripe.net/db/dbcopyright.html", "% Rights restricted by 150 | * copyright. See http://www.ripe.net/db/dbcopyright.html"}, {"SourceList", 151 | * NULL}, {"0", &testmode}, {"1Bt9RNSMWcA.Y", "1Bt9RNSMWcA.Y"}, 152 | * {"/ncc/db2/doc/WHOIS-HELP", "/ncc/db2/doc/WHOIS-HELP"}, 153 | * {"/ncc/db2/doc/AUTO-DBM-HELP", "/ncc/db2/doc/AUTO-DBM-HELP"}, 154 | * {"/ncc/db2/etc/attr-desc.config", "/ncc/db2/etc/attr-desc.config"}, 155 | * {"RIPE", "RIPE"}, {"RIPE /ncc/db2/data/ripe/ripe.db SPLIT", "RIPE 156 | * /ncc/db2/data/ripe/ripe.db SPLIT"}, {"RIPE", "RIPE"}, 157 | * {"SourceList", NULL}, {"dbase", "dbase"}, {"/ncc/db2/log/qry/qrylog", 158 | * "/ncc/db2/log/qry/qrylog"}, {"/ncc/db2/log/qry/qry2log", 159 | * "/ncc/db2/log/qry/qry2log"}, {"/ncc/db2/log/err/errlog", 160 | * "/ncc/db2/log/err/errlog"}, {"/ncc/db2/log/audit/auditlog", 161 | * "/ncc/db2/log/audit/auditlog"}, {"/ncc/db2/log/upd", "/ncc/db2/log/upd"}, 162 | * {"/ncc/db2/log/ack", "/ncc/db2/log/ack"}, {"/ncc/db2/locks", 163 | * "/ncc/db2/locks"}, {"whoisd.pid", "whoisd.pid"}, {"STOPUPDATES", 164 | * "STOPUPDATES"}, {"CLEANDB.LOCK", "CLEANDB.LOCK"}, 165 | * {"/ncc/db2/serials/current", "/ncc/db2/serials/current"}, 166 | * {"/ncc/db2/serials/old", "/ncc/db2/serials/old"}, 167 | * {"/ncc/db2/serials/incoming", "/ncc/db2/serials/incoming"}, {"180", 168 | * "180"}, {"RIPE-NCC-HM-MNT ", "RIPE-NCC-HM-MNT "}, {"127.0.0.1", 169 | * "127.0.0.1"}, {"193.0.0.1[345678][0-9]", "193.0.0.1[345678][0-9]"}, 170 | * {"195.88.156.1", "195.88.156.1"}, {"/ncc/db2/tmp", "/ncc/db2/tmp"}, 171 | * {"/usr/local/bin/pgpv", "/usr/local/bin/pgpv"}, {"/usr/local/bin/pgpk", 172 | * "/usr/local/bin/pgpk"}, {"/ncc/db2/.pgp", "/ncc/db2/.pgp"}, 173 | * {"/var/qmail/bin/qmail-inject -fripe-dbm", "/var/qmail/bin/qmail-inject 174 | * -fripe-dbm"}, {"8096", "8096"}, {"2097152", "2097152"}, {"2", "2"}, 175 | * {"ripe-dbm@ripe.net", "ripe-dbm@ripe.net"}, {"ripe-dbm@ripe.net", 176 | * "ripe-dbm@ripe.net"}, {"auto-dbm@ripe.net", "auto-dbm@ripe.net"}, 177 | * {"nostrict", "nostrict"}, {"% No entries found for the selected 178 | * source(s).", "% No entries found for the selected source(s)."}, {"Subject: 179 | * RIPE RR: Addition of overlapping routes", "Subject: RIPE RR: Addition of 180 | * overlapping routes"}, {"Subject: RIPE RR: Removal of overlapping routes", 181 | * "Subject: RIPE RR: Removal of overlapping routes"}, {"The addition of 182 | * your route object ... ", "The addition of your route object ... "}, {"The 183 | * deletion of your route object ... ", "The deletion of your route object 184 | * ... "}, {"created new overlaps with the following routes ...", "created 185 | * new overlaps with the following routes ..."}, {"removed the overlaps with 186 | * the following routes ...", "removed the overlaps with the following routes 187 | * ..."}, {"Subject: RIPE RR: Addition of overlapping routes", "Subject: RIPE 188 | * RR: Addition of overlapping routes"}, {"Subject: RIPE RR: Removal of 189 | * overlapping routes", "Subject: RIPE RR: Removal of overlapping routes"}, 190 | * {"The addition of the route object ... ", "The addition of the route 191 | * object ... "}, {"The deletion of the route object ... ", "The deletion of 192 | * the route object ... "}, {"created new overlaps with your following routes 193 | * ...", "created new overlaps with your following routes ..."}, {"removed 194 | * the overlaps with your following routes ...", "removed the overlaps with 195 | * your following routes ..."}, {"Your e-mail:", "Your e-mail:"}, {"From: 196 | * RIPE Database Management <$HUMAILBOX>", "From: RIPE Database Management 197 | * <$HUMAILBOX>"}, {"From: RIPE Database Management <$HUMAILBOX>", "From: 198 | * RIPE Database Management <$HUMAILBOX>"}, {"Subject: SUCCEEDED: $SUBJECT", 199 | * "Subject: SUCCEEDED: $SUBJECT"}, {"Help file requested so body of message 200 | * ignored.", "Help file requested so body of message ignored."}, {"Objects 201 | * that just generated a WARNING have been updated as shown.", "Objects that 202 | * just generated a WARNING have been updated as shown."}, {"No errors were 203 | * found in your database update. Congratulations.", "No errors were found 204 | * in your database update. Congratulations."}, {"RIPE Database Maintenance 205 | * Department (Automatic Section)", "RIPE Database Maintenance Department 206 | * (Automatic Section)"}, {"This is to notify you that some object(s) in the 207 | * RIPE database", "This is to notify you that some object(s) in the RIPE 208 | * database"}, {"The update causing these changes had the following mail 209 | * headers:", "The update causing these changes had the following mail 210 | * headers:"}, {"The update causing these changes came from the following 211 | * host:", "The update causing these changes came from the following host:"}, 212 | * {"From: RIPE Database Notifications <$HUMAILBOX>", "From: RIPE Database 213 | * Notifications <$HUMAILBOX>"}, {"From: RIPE Database Maintainer Forwarding 214 | * <$HUMAILBOX>", "From: RIPE Database Maintainer Forwarding <$HUMAILBOX>"}, 215 | * {"This is to notify you that some objects in which you are mentioned as", 216 | * "This is to notify you that some objects in which you are mentioned as"}, 217 | * {"The mail message causing these failures had the following mail 218 | * headers:", "The mail message causing these failures had the following mail 219 | * headers:"}, {"The update causing these failures came from the following 220 | * host:", "The update causing these failures came from the following 221 | * host:"}, {"From: RIPE Database Maintainer Creation <$HUMAILBOX>", "From: 222 | * RIPE Database Maintainer Creation <$HUMAILBOX>"}, {"A maintainer object is 223 | * requested by:", "A maintainer object is requested by:"}, {"* A C C E S S D 224 | * E N I E D *", "* A C C E S S D E N I E D *"}, {"The object shown below 225 | * is NOT in the RIPE database.", "The object shown below is NOT in the RIPE 226 | * database."}, {"Referred query to host $REFERHOST at port $REFERPORT", 227 | * "Referred query to host $REFERHOST at port $REFERPORT"}, {"Referral loop 228 | * detected when querying ", "Referral loop detected when querying "}, 229 | * {"Referred query to host $REFERHOST at port $REFERPORT", "Referred query 230 | * to host $REFERHOST at port $REFERPORT"}, {"Result TRUNCATED. Answer lenght 231 | * exceeded limit.", "Result TRUNCATED. Answer lenght exceeded limit."}, 232 | * {"%%% End of referred query result", "%%% End of referred query result"}, 233 | * {"10", "10"}, {"2000", "2000"}, {"Copyright 234 | * (c)1992/1993/1994/1995/1996/1997/1998/1999 by RIPE NCC ", "Copyright 235 | * (c)1992/1993/1994/1995/1996/1997/1998/1999 by RIPE NCC "}, {"IE ie", "IE 236 | * ie"} }; 237 | */ 238 | 239 | /* 240 | * ca_database_t ripe = { "rowan.ripe.net", "4343", "Idiot", "scramble", 241 | * "RIPE6" }; 242 | * 243 | * ca_database_t arin = { 244 | * 245 | * "rowan", "2005", "dbint", "passwrd", "ARIN2" }; 246 | */ 247 | 248 | /* 249 | * ca_database_t radb = { "rowan", "default", "default", "default", 250 | * "RADB1" }; 251 | */ 252 | 253 | /* 254 | * ca_database_t radb = { ca_defHost, ca_defPort, ca_defUser, ca_defPassword, 255 | * "RADB1" }; 256 | */ 257 | 258 | /* 259 | * ca_database_t radb = { CA_DEFHOST, CA_DEFPORT, CA_DEFUSER, CA_DEFPASSWORD, 260 | * "RADB1" }; 261 | * 262 | * ca_database_list_t ripeComponent = { "RIPE", { "rowan.ripe.net", "4343", 263 | * "Idiot", "scramble", "RIPE6" } }; 264 | * 265 | * ca_database_list_t arinComponent = { "ARIN", { "rowan", "2005", "dbint", 266 | * "passwd", "ARIN2" } }; 267 | */ 268 | 269 | /* 270 | * char ca_defHost[64] = "rowan"; char ca_defPort[16] = "43"; char 271 | * ca_defUser[16] = "dbase"; char ca_defPassword[9] = "encrypt1"; char 272 | * ca_defdbName[16] = "default-db"; 273 | */ 274 | 275 | /* 276 | * ca_database_list_t radbComponent = { "RADB", { CA_DEFHOST, CA_DEFPORT, 277 | * CA_DEFUSER, CA_DEFPASSWORD, "RADB1" } }; 278 | */ 279 | 280 | /* 281 | * The test configuration file. 282 | */ 283 | const char *testFile = "test.config"; 284 | const char *tempFile = "temp.config"; 285 | const char *dictFile = "dictionary.txt"; 286 | const char *confFile = "rip.config"; 287 | 288 | /* 289 | * const char *confFile = "./dbupdate.conf"; 290 | */ 291 | const char *sourcesFile = "sources.config"; 292 | 293 | values_t confVars[VARS]; 294 | values_t globals[VARS]; 295 | values_t locals[VARS]; 296 | 297 | /* 298 | * We do not need this now; the dictionary is hardcoded. 299 | * dict_t dictionary[VARS]; 300 | */ 301 | 302 | ca_dbSource_t *theSrc; 303 | 304 | const char *configWarningStr = "Warning: undefined configuration variable:"; 305 | const char *configError_1Str = "Error: Incomplete configuration file. Was this intended ???\n"; 306 | const char *configError_2Str = " configuration variables undefined.\n"; 307 | const char *configVarChk_OK_Str = "..... mandatory variables check completed.\n"; 308 |