|
|
|
|
@ -18,7 +18,7 @@ |
|
|
|
|
* |
|
|
|
|
* |
|
|
|
|
* IDENTIFICATION |
|
|
|
|
* $PostgreSQL: pgsql/src/backend/postmaster/syslogger.c,v 1.39 2007/09/20 18:19:08 adunstan Exp $ |
|
|
|
|
* $PostgreSQL: pgsql/src/backend/postmaster/syslogger.c,v 1.40 2007/09/22 18:19:18 tgl Exp $ |
|
|
|
|
* |
|
|
|
|
*------------------------------------------------------------------------- |
|
|
|
|
*/ |
|
|
|
|
@ -608,10 +608,8 @@ static pid_t |
|
|
|
|
syslogger_forkexec(void) |
|
|
|
|
{ |
|
|
|
|
char *av[10]; |
|
|
|
|
int ac = 0, |
|
|
|
|
bufc = 0, |
|
|
|
|
i; |
|
|
|
|
char numbuf[2][32]; |
|
|
|
|
int ac = 0; |
|
|
|
|
char filenobuf[32]; |
|
|
|
|
|
|
|
|
|
av[ac++] = "postgres"; |
|
|
|
|
av[ac++] = "--forklog"; |
|
|
|
|
@ -620,21 +618,18 @@ syslogger_forkexec(void) |
|
|
|
|
/* static variables (those not passed by write_backend_variables) */ |
|
|
|
|
#ifndef WIN32 |
|
|
|
|
if (syslogFile != NULL) |
|
|
|
|
snprintf(numbuf[bufc++], 32, "%d", fileno(syslogFile)); |
|
|
|
|
snprintf(filenobuf, sizeof(filenobuf), "%d", |
|
|
|
|
fileno(syslogFile)); |
|
|
|
|
else |
|
|
|
|
strcpy(numbuf[bufc++], "-1"); |
|
|
|
|
strcpy(filenobuf, "-1"); |
|
|
|
|
#else /* WIN32 */ |
|
|
|
|
if (syslogFile != NULL) |
|
|
|
|
snprintf(numbuf[bufc++], 32, "%ld", |
|
|
|
|
snprintf(filenobuf, sizeof(filenobuf), "%ld", |
|
|
|
|
_get_osfhandle(_fileno(syslogFile))); |
|
|
|
|
else |
|
|
|
|
strcpy(numbuf[bufc++], "0"); |
|
|
|
|
strcpy(filenobuf, "0"); |
|
|
|
|
#endif /* WIN32 */ |
|
|
|
|
|
|
|
|
|
/* Add to the arg list */ |
|
|
|
|
Assert(bufc <= lengthof(numbuf)); |
|
|
|
|
for (i = 0; i < bufc; i++) |
|
|
|
|
av[ac++] = numbuf[i]; |
|
|
|
|
av[ac++] = filenobuf; |
|
|
|
|
|
|
|
|
|
av[ac] = NULL; |
|
|
|
|
Assert(ac < lengthof(av)); |
|
|
|
|
@ -652,7 +647,7 @@ syslogger_parseArgs(int argc, char *argv[]) |
|
|
|
|
{ |
|
|
|
|
int fd; |
|
|
|
|
|
|
|
|
|
Assert(argc == 5); |
|
|
|
|
Assert(argc == 4); |
|
|
|
|
argv += 3; |
|
|
|
|
|
|
|
|
|
#ifndef WIN32 |
|
|
|
|
|