[PATCH 3 of 3] sshserver: redirect stdin/stdout early and use duplicated streams

Yuya Nishihara yuya at tcha.org
Tue May 8 07:53:12 EDT 2018


On Tue, 08 May 2018 00:00:57 -0400, Matt Harbison wrote:
> On Mon, 07 May 2018 09:11:24 -0400, Yuya Nishihara <yuya at tcha.org> wrote:
> > # HG changeset patch
> > # User Yuya Nishihara <yuya at tcha.org>
> > # Date 1521964053 -32400
> > #      Sun Mar 25 16:47:33 2018 +0900
> > # Node ID a7e53b70e5026bac9772f9869e754a2a6f530587
> > # Parent  ea801aa5d559e37f68fb9bdda47dec6e58abcb88
> > sshserver: redirect stdin/stdout early and use duplicated streams
> >
> > This is what we achieved with hook.redirect(True) plus ui.fout = ui.ferr.
> >
> > The hook.redirect() function can't be completely removed yet since hgweb
> > still depends on it. I'm not sure if it is necessary for WSGI servers.  
> > CGI
> > needs it, but does WSGI communicate over stdin/stdout channels?
> 
> Not sure if this is what you meant, but printing to stderr from  
> hgweb/wireprotocol code landed in the error log for SCM Manager, which was  
> nice.

stderr is unaffected by hook.redirect().

We know stdin/stdout is the IPC channel for SSH/CGI protocols so we need
either hook.redirect() or procutil.protectstdio(), but I have no idea about
the other types of WSGI frontends.


More information about the Mercurial-devel mailing list