Andreas Pflug wrote:
> Andrew Dunstan wrote:
>
>> I have no idea why that's done - it goes back to the origins of the
>> syslogger - probably because someone mistakenly thinks all WIndows
>> text files have to have CRLF line endings.
>>
>> I tried changing that to _O_BINARY, and calling _setmode on both the
>> pipe before it's duped into stderr and stderr after the dup and both.
>> Nothing seemed to work.
>>
> AFAIR the flag has to be set again in each child process.
>
>
OK, this was the bit of info I was missing. I put a call in
SubPostmasterMain() like this:
_setmode(fileno(stderr), _O_BINARY);
and one in the syslogger code the same, just after the pipe is dup'ed
into stderr.
After that I saw no more corruption issues.
However, the problem is that in backporting it we'd make a slight
behaviour change - the log file just gets LF instead of CRLF line
endings. I'm inclined to say that's a better result than living with the
bug, though.
Thoughts?
cheers
andrew