Patchwork [Bug,4877] New: test-https.t: requests are sent as fully qualified hosts but not accepted

login
register
mail settings
Submitter mercurial-bugs@selenic.com
Date Oct. 2, 2015, 8:11 p.m.
Message ID <bug-4877-285@https.bz.mercurial-scm.org/>
Download mbox | patch
Permalink /patch/10737/
State Not Applicable
Headers show

Comments

mercurial-bugs@selenic.com - Oct. 2, 2015, 8:11 p.m.
https://bz.mercurial-scm.org/show_bug.cgi?id=4877

            Bug ID: 4877
           Summary: test-https.t: requests are sent as fully qualified
                    hosts but not accepted
           Product: Mercurial
           Version: unspecified
          Hardware: PC
                OS: Mac OS
            Status: UNCONFIRMED
          Severity: bug
          Priority: normal
         Component: Mercurial
          Assignee: bugzilla@selenic.com
          Reporter: timeless@gmail.com
                CC: mercurial-devel@selenic.com

fwiw, certificate verification isn't supported in py2.6 or something, so there
is some other jitter later.

$ python --version
Python 2.6.1
$ uname -a
Darwin macbook.10-6-8 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36
PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386

$ ./run-tests.py --local test-https.t

$ diff -U2 test-https.t{,.err}|grep -B1000 '@@ -328'|grep -v '@@ -328'
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py",
line 389, in open
+      response = meth(req, response)
+    File
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py",
line 502, in http_response
+      'http', request, response, code, msg, hdrs)
+    File
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py",
line 427, in error
+      return self._call_chain(*args)
+    File
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py",
line 361, in _call_chain
+      result = func(*args)
+    File
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py",
line 510, in http_error_default
+      raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
+  HTTPError: HTTP Error 404: Not Found
+  abort: HTTP Error 404: Not Found
+  [255]

 Test https with cacert and fingerprint through proxy

----

Patch

--- test-https.t        2015-10-01 13:07:55.000000000 -0400
+++ test-https.t.err    2015-10-02 16:05:38.000000000 -0400
@@ -320,7 +320,58 @@ 
   $ http_proxy=http://localhost:$HGPORT1/ hg -R copy-pull pull --insecure
--traceback
   pulling from https://localhost:$HGPORT/
-  warning: localhost certificate with fingerprint
91:4f:1a:ff:87:24:9c:09:b6:85:9b:88:b1:90:6d:30:75:64:91:ca not verified (check
hostfingerprints or web.cacerts config setting)
-  searching for changes
-  no changes found
+  Traceback (most recent call last):
+    File "/Users/timeless/crew/mercurial/dispatch.py", line 187, in _runcatch
+      return _dispatch(req)
+    File "/Users/timeless/crew/mercurial/dispatch.py", line 920, in _dispatch
+      cmdpats, cmdoptions)
+    File "/Users/timeless/crew/mercurial/dispatch.py", line 679, in runcommand
+      ret = _runcommand(ui, options, cmd, d)
+    File "/Users/timeless/crew/mercurial/dispatch.py", line 1051, in
_runcommand
+      return checkargs()
+    File "/Users/timeless/crew/mercurial/dispatch.py", line 1011, in checkargs
+      return cmdfunc()
+    File "/Users/timeless/crew/mercurial/dispatch.py", line 917, in <lambda>
+      d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
+    File "/Users/timeless/crew/mercurial/util.py", line 796, in check
+      return func(*args, **kwargs)
+    File "/Users/timeless/crew/mercurial/commands.py", line 5159, in pull
+      other = hg.peer(repo, opts, source)
+    File "/Users/timeless/crew/mercurial/hg.py", line 170, in peer
+      return _peerorrepo(rui, path, create).peer()
+    File "/Users/timeless/crew/mercurial/hg.py", line 147, in _peerorrepo
+      obj = _peerlookup(path).instance(ui, path, create)
+    File "/Users/timeless/crew/mercurial/httppeer.py", line 281, in instance
+      inst._fetchcaps()
+    File "/Users/timeless/crew/mercurial/httppeer.py", line 76, in _fetchcaps
+      self.caps = set(self._call('capabilities').split())
+    File "/Users/timeless/crew/mercurial/httppeer.py", line 190, in _call
+      fp = self._callstream(cmd, **args)
+    File "/Users/timeless/crew/mercurial/httppeer.py", line 137, in
_callstream
+      resp = self.urlopener.open(req)
+    File
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py",
line 383, in open
+      response = self._open(req, data)
+    File
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py",
line 401, in _open
+      '_open', req)
+    File
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py",
line 361, in _call_chain
+      result = func(*args)
+    File
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py",
line 701, in <lambda>
+      meth(r, proxy, type))
+    File "/Users/timeless/crew/mercurial/url.py", line 136, in proxy_open
+      return urllib2.ProxyHandler.proxy_open(self, req, proxy, type_)
+    File
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py",
line 724, in proxy_open
+      return self.parent.open(req)
+    File