Add error check on getenv("DATADIR")

Add code to set DATADIR in postmaster.c if -D is used
This commit is contained in:
Marc G. Fournier 1997-12-07 20:57:45 +00:00
parent a68a132a6c
commit bec35da8bf
2 changed files with 13 additions and 4 deletions

View File

@ -25,9 +25,13 @@ char* crypt_getpwdfilename() {
static char* filename = NULL; static char* filename = NULL;
if (!filename) { if (!filename) {
char* env; char* env = NULL;
env = getenv("PGDATA"); env = getenv("PGDATA");
if(env == NULL) {
elog(FATAL, "crypt.c: PGDATA is not defined");
exit(-1);
}
filename = (char*)malloc(strlen(env) + strlen(CRYPT_PWD_FILE) + 2); filename = (char*)malloc(strlen(env) + strlen(CRYPT_PWD_FILE) + 2);
sprintf(filename, "%s/%s", env, CRYPT_PWD_FILE); sprintf(filename, "%s/%s", env, CRYPT_PWD_FILE);
} }

View File

@ -10,7 +10,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.63 1997/12/04 00:27:17 scrappy Exp $ * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.64 1997/12/07 20:57:45 scrappy Exp $
* *
* NOTES * NOTES
* *
@ -332,6 +332,11 @@ PostmasterMain(int argc, char *argv[])
case 'D': case 'D':
/* Set PGDATA from the command line. */ /* Set PGDATA from the command line. */
DataDir = optarg; DataDir = optarg;
{
char envEntry[2 * ARGV_SIZE];
sprintf(envEntry, "PGDATA=%s", DataDir);
putenv(envEntry);
}
break; break;
case 'd': case 'd':
@ -1151,8 +1156,8 @@ BackendStartup(StartupInfo *packet, /* client's startup packet */
sprintf(envEntry[3], "PGDATA=%s", DataDir); sprintf(envEntry[3], "PGDATA=%s", DataDir);
putenv(envEntry[3]); putenv(envEntry[3]);
} }
sprintf(envEntry[4], "IPC_KEY=%d", ipc_key); sprintf(envEntry[4], "IPC_KEY=%d", ipc_key);
putenv(envEntry[4]); putenv(envEntry[4]);
if (DebugLvl > 2) if (DebugLvl > 2)
{ {