D3235: httppeer: move error handling and response wrapping into sendrequest

indygreg (Gregory Szorc) phabricator at mercurial-scm.org
Wed Apr 11 13:01:02 EDT 2018


This revision was automatically updated to reflect the committed changes.
Closed by commit rHGb5862ee01abe: httppeer: move error handling and response wrapping into sendrequest (authored by indygreg, committed by ).

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D3235?vs=7953&id=7996

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

AFFECTED FILES
  mercurial/httppeer.py

CHANGE DETAILS

diff --git a/mercurial/httppeer.py b/mercurial/httppeer.py
--- a/mercurial/httppeer.py
+++ b/mercurial/httppeer.py
@@ -284,10 +284,24 @@
 
         start = util.timer()
 
-    res = opener.open(req)
-    if ui.configbool('devel', 'debug.peer-request'):
-        dbg(line % '  finished in %.4f seconds (%s)'
-            % (util.timer() - start, res.code))
+    try:
+        res = opener.open(req)
+    except urlerr.httperror as inst:
+        if inst.code == 401:
+            raise error.Abort(_('authorization failed'))
+        raise
+    except httplib.HTTPException as inst:
+        ui.debug('http error requesting %s\n' %
+                 util.hidepassword(req.get_full_url()))
+        ui.traceback()
+        raise IOError(None, inst)
+    finally:
+        if ui.configbool('devel', 'debug.peer-request'):
+            dbg(line % '  finished in %.4f seconds (%s)'
+                % (util.timer() - start, res.code))
+
+    # Insert error handlers for common I/O failures.
+    _wraphttpresponse(res)
 
     return res
 
@@ -346,19 +360,7 @@
                                            self._caps, self.capable,
                                            self._url, cmd, args)
 
-        try:
-            resp = sendrequest(self.ui, self._urlopener, req)
-        except urlerr.httperror as inst:
-            if inst.code == 401:
-                raise error.Abort(_('authorization failed'))
-            raise
-        except httplib.HTTPException as inst:
-            self.ui.debug('http error while sending %s command\n' % cmd)
-            self.ui.traceback()
-            raise IOError(None, inst)
-
-        # Insert error handlers for common I/O failures.
-        _wraphttpresponse(resp)
+        resp = sendrequest(self.ui, self._urlopener, req)
 
         # record the url we got redirected to
         resp_url = pycompat.bytesurl(resp.geturl())



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


More information about the Mercurial-devel mailing list