提交 4c0fe512 编写于 作者: A Andrew Dunstan

Remove ill-conceived CRLF translation for Windows in syslogger.

上级 3da3c04f
......@@ -18,7 +18,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/postmaster/syslogger.c,v 1.30 2007/01/05 22:19:36 momjian Exp $
* $PostgreSQL: pgsql/src/backend/postmaster/syslogger.c,v 1.31 2007/06/04 22:21:42 adunstan Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -108,7 +108,6 @@ static volatile sig_atomic_t rotation_requested = false;
static pid_t syslogger_forkexec(void);
static void syslogger_parseArgs(int argc, char *argv[]);
#endif
static void write_syslogger_file_binary(const char *buffer, int count);
#ifdef WIN32
static unsigned int __stdcall pipeThread(void *arg);
......@@ -338,7 +337,7 @@ SysLoggerMain(int argc, char *argv[])
}
else if (bytesRead > 0)
{
write_syslogger_file_binary(logbuffer, bytesRead);
write_syslogger_file(logbuffer, bytesRead);
continue;
}
else
......@@ -626,49 +625,6 @@ syslogger_parseArgs(int argc, char *argv[])
*/
void
write_syslogger_file(const char *buffer, int count)
{
#ifdef WIN32
/*
* On Windows we need to do our own newline-to-CRLF translation.
*/
char convbuf[256];
char *p;
int n;
p = convbuf;
n = 0;
while (count-- > 0)
{
if (*buffer == '\n')
{
*p++ = '\r';
n++;
}
*p++ = *buffer++;
n++;
if (n >= sizeof(convbuf) - 1)
{
write_syslogger_file_binary(convbuf, n);
p = convbuf;
n = 0;
}
}
if (n > 0)
write_syslogger_file_binary(convbuf, n);
#else /* !WIN32 */
write_syslogger_file_binary(buffer, count);
#endif
}
/*
* Write binary data to the currently open logfile
*
* On Windows the data arriving in the pipe already has CR/LF newlines,
* so we must send it to the file without further translation.
*/
static void
write_syslogger_file_binary(const char *buffer, int count)
{
int rc;
......@@ -716,7 +672,7 @@ pipeThread(void *arg)
errmsg("could not read from logger pipe: %m")));
}
else if (bytesRead > 0)
write_syslogger_file_binary(logbuffer, bytesRead);
write_syslogger_file(logbuffer, bytesRead);
}
/* We exit the above loop only upon detecting pipe EOF */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册