mercurial/httppeer.py
changeset 35698 0c4b23ccf1a5
parent 35697 5a7906ed78d4
child 35884 197d10e157ce
--- a/mercurial/httppeer.py	Fri Jan 12 10:14:20 2018 +0000
+++ b/mercurial/httppeer.py	Fri Jan 12 10:41:03 2018 +0000
@@ -162,7 +162,39 @@
                 getattr(h, "close_all", lambda: None)()
 
     def _openurl(self, req):
-        return self._urlopener.open(req)
+        if (self._ui.debugflag
+            and self._ui.configbool('devel', 'debug.peer-request')):
+            dbg = self._ui.debug
+            line = 'devel-peer-request: %s\n'
+            dbg(line % '%s %s' % (req.get_method(), req.get_full_url()))
+            hgargssize = None
+
+            for header, value in sorted(req.header_items()):
+                if header.startswith('X-hgarg-'):
+                    if hgargssize is None:
+                        hgargssize = 0
+                    hgargssize += len(value)
+                else:
+                    dbg(line % '  %s %s' % (header, value))
+
+            if hgargssize is not None:
+                dbg(line % '  %d bytes of commands arguments in headers'
+                    % hgargssize)
+
+            if req.has_data():
+                data = req.get_data()
+                length = getattr(data, 'length', None)
+                if length is None:
+                    length = len(data)
+                dbg(line % '  %d bytes of data' % length)
+
+            start = util.timer()
+
+        ret = self._urlopener.open(req)
+        if self._ui.configbool('devel', 'debug.peer-request'):
+            dbg(line % '  finished in %.4f seconds (%s)'
+                % (util.timer() - start, ret.code))
+        return ret
 
     # Begin of _basepeer interface.