Skip to content
Snippets Groups Projects
Commit 23b07333a8b2 authored by Matt Harbison's avatar Matt Harbison
Browse files

tinyproxy: explicitly flush logged messages

On Windows, output streams are buffered when redirected to a file, and
TerminateProcess() apparently doesn't trigger a flush.  This left
test-http-proxy.t missing part of the last line when it cat'd proxy.log[1].

Flushing stderr is all that is needed (on py27 anyway).  I originally flushed
stdout too, but that added additional output to the log:

     $ cat proxy.log
  +  Accept: $LOCALIP (localhost)\r (esc)
  +  Serving HTTP on 0.0.0.0 port 20810 ...\r (esc)
  +       connect to localhost:$HGPORT\r (esc)
     * - - [*] "GET http://localhost:$HGPORT/?cmd=capabilities HTTP/1.1" - - (glob)
  +       bye\r (esc)
  +       connect to localhost:$HGPORT\r (esc)
     * - - [*] "GET http://localhost:$HGPORT/?cmd=branchmap HTTP/1.1" - - x-hgproto-1:0.1 0.2 comp=*zlib,none,bzip2 (glob)
  +       bye\r (esc)
  +       connect to localhost:$HGPORT\r (esc)
     * - - [*] "GET http://localhost:$HGPORT/?cmd=stream_out HTTP/1.1" - - x-hgproto-1:0.1 0.2 comp=*zlib,none,bzip2 (glob)
  +       bye\r (esc)
  +       connect to localhost:$HGPORT\r (esc)
 ...

[1] https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-April/096987.html
parent 2851b24eecc4
No related branches found
No related tags found
No related merge requests found
......@@ -53,6 +53,8 @@
self.log_message('"%s" %s %s%s',
self.requestline, str(code), str(size),
''.join([' %s:%s' % h for h in sorted(xheaders)]))
# Flush for Windows, so output isn't lost on TerminateProcess()
sys.stderr.flush()
def _connect_to(self, netloc, soc):
i = netloc.find(':')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment