diff options
Diffstat (limited to 'src/backend/postmaster/postmaster.c')
| -rw-r--r-- | src/backend/postmaster/postmaster.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index ca32fcbe49..f712d7cfec 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -11,7 +11,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.148 2000/06/14 18:17:38 petere Exp $ + * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.149 2000/06/22 22:31:20 petere Exp $ * * NOTES * @@ -364,6 +364,8 @@ PostmasterMain(int argc, char *argv[]) bool DataDirOK; /* We have a usable PGDATA value */ char original_extraoptions[MAXPGPATH]; + IsUnderPostmaster = true; /* so that backends know this */ + *original_extraoptions = '\0'; progname = argv[0]; @@ -379,7 +381,8 @@ PostmasterMain(int argc, char *argv[]) ResetAllOptions(); MyProcPid = getpid(); - DataDir = getenv("PGDATA"); /* default value */ + if (getenv("PGDATA")) + DataDir = strdup(getenv("PGDATA")); /* default value */ if (getenv("PGPORT")) PostPortName = atoi(getenv("PGPORT")); @@ -401,7 +404,11 @@ PostmasterMain(int argc, char *argv[]) while ((opt = getopt(argc, argv, "A:a:B:b:D:d:Film:MN:no:p:Ss-:")) != EOF) { if (opt == 'D') - DataDir = optarg; + { + if (DataDir) + free(DataDir); + DataDir = strdup(optarg); + } } optind = 1; /* start over */ @@ -2040,7 +2047,7 @@ PostmasterRandom(void) if (!initialized) { - Assert(random_seed != 0 && !IsUnderPostmaster); + Assert(random_seed != 0); srandom(random_seed); initialized = true; } |
