[PATCH 6 of 7] url: always create BetterHTTPS connections the same way

Mads Kiilerich mads at kiilerich.com
Tue Feb 15 21:41:27 CST 2011


# HG changeset patch
# User Mads Kiilerich <mads at kiilerich.com>
# Date 1297826897 -3600
# Node ID f88260914c7cbe91ec232dfd2e8955581e236125
# Parent  03c765db05066230dea3239a44aeae3b7d81162e
url: always create BetterHTTPS connections the same way

diff --git a/mercurial/url.py b/mercurial/url.py
--- a/mercurial/url.py
+++ b/mercurial/url.py
@@ -546,12 +546,13 @@
         send = keepalive.safesend
 
         def connect(self):
+            self.sock = _create_connection((self.host, self.port))
+
             host = self.host
             cacerts = self.ui.config('web', 'cacerts')
             hostfingerprint = self.ui.config('hostfingerprints', host)
 
             if cacerts and not hostfingerprint:
-                sock = _create_connection((self.host, self.port))
                 self.sock = _ssl_wrap_socket(self.sock, self.key_file,
                     self.cert_file, cert_reqs=CERT_REQUIRED,
                     ca_certs=util.expandpath(cacerts))
@@ -562,7 +563,8 @@
                                        'insecurely)') % (host, msg))
                 self.ui.debug('%s certificate successfully verified\n' % host)
             else:
-                httplib.HTTPSConnection.connect(self)
+                self.sock = _ssl_wrap_socket(self.sock, self.key_file,
+                    self.cert_file)
                 if hasattr(self.sock, 'getpeercert'):
                     peercert = self.sock.getpeercert(True)
                     peerfingerprint = util.sha1(peercert).hexdigest()


More information about the Mercurial-devel mailing list