Patchwork D2463: wireprotoserver: support logging SSH server I/O to a file descriptor

login
register
mail settings
Submitter phabricator
Date March 1, 2018, 4:30 p.m.
Message ID <f50e28011b50b36e9b4d4a40a3ebc306@localhost.localdomain>
Download mbox | patch
Permalink /patch/28556/
State Not Applicable
Headers show

Comments

phabricator - March 1, 2018, 4:30 p.m.
indygreg updated this revision to Diff 6248.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D2463?vs=6137&id=6248

REVISION DETAIL
  https://phab.mercurial-scm.org/D2463

AFFECTED FILES
  mercurial/wireprotoserver.py

CHANGE DETAILS




To: indygreg, #hg-reviewers
Cc: mercurial-devel

Patch

diff --git a/mercurial/wireprotoserver.py b/mercurial/wireprotoserver.py
--- a/mercurial/wireprotoserver.py
+++ b/mercurial/wireprotoserver.py
@@ -7,6 +7,7 @@ 
 from __future__ import absolute_import
 
 import contextlib
+import os
 import struct
 import sys
 import threading
@@ -588,12 +589,19 @@ 
                                          state)
 
 class sshserver(object):
-    def __init__(self, ui, repo):
+    def __init__(self, ui, repo, logfh=None):
         self._ui = ui
         self._repo = repo
         self._fin = ui.fin
         self._fout = ui.fout
 
+        # Log write I/O to stdout and stderr if configured.
+        if logfh:
+            self._fout = util.makeloggingfileobject(
+                logfh, self._fout, 'o', logdata=True)
+            ui.ferr = util.makeloggingfileobject(
+                logfh, ui.ferr, 'e', logdata=True)
+
         hook.redirect(True)
         ui.fout = repo.ui.fout = ui.ferr