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

indygreg (Gregory Szorc) phabricator at mercurial-scm.org
Thu Mar 1 16:30:51 UTC 2018


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

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
 



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


More information about the Mercurial-devel mailing list