static const char *dbenv[]={"DB_TYPE","DB_HOST","DB_PORT","DB_NAME"};
SQLTYP *sql;
-const char *db[sizeof(dbenv)/sizeof(char *)];
+const char *db[SQLENV];
int phase;
_Bool proceed;
while (proceed==true) {
//(void) rou_alert(0,"JMPDBG %s phase='%d'",OPEP,phase);
switch (phase) {
- case 0 : //get database parameters
- for (int i=0;i<(sizeof(dbenv)/sizeof(char *));i++) {
- db[i]=getenv(dbenv[i]);
- if (db[i]==(char *)0) {
- (void) rou_alert(0,"%s Missing <%s> environment variable (config?)",
- OPEP,dbenv[i]);
- phase=999; //missing database information
+ case 0 : //get the preset sql env variable
+ for (int i=0;i<2;i++) {
+ switch (i) {
+ case 0 : //Postgresql
+ if (posenv[0]!=(char *)0)
+ (void) memcpy(db,posenv,sizeof(db));
+ break;
+ case 1 : //MySQL/Mariadb
+ if (marenv[0]!=(char *)0)
+ (void) memcpy(db,marenv,sizeof(db));
+ break;
+ default : //Trouble trouble
+ break;
}
}
break;
- case 1 : //getting dbtype
+ case 1 : //get database parameters
+ for (int i=0;i<(sizeof(dbenv)/sizeof(char *));i++) {
+ char *ptr;
+
+ ptr=getenv(dbenv[i]);
+ if (ptr!=(char *)0)
+ db[i]=ptr; //Variable overwrite
+ }
+ break;
+ case 2 : //getting dbtype
if ((sql=gettyp(db[0]))==(SQLTYP *)0) {
(void) rou_alert(0,"%s %s type unknown (config?)",OPEP,dbenv[0]);
phase=999; //missing database information
}
break;
- case 2 : //opening specific database
+ case 3 : //opening specific database
switch (sql->sqldb) {
case db_postgres :
sql->db.psql=pos_opensql(db[1],db[2],db[3]);
break;
}
break;
- case 3 : //checking if the database is properly open
+ case 4 : //checking if the database is properly open
_Bool isok;
isok=false;