# HG changeset patch # User Pierre-Yves David # Date 2016-09-13 15:46:29 # Node ID 799e36749f1a83d8254a424657996732b047dabe # Parent be16091ac14d03f3cc038b2fb26efe46f785f8d7 ssl: handle a difference in SSLError with pypy (issue5348) The SSLError exception is a bit different with pypy (message is the first argument, not the second) This led the certificate error handling to crash when trying to extract the ssl error message. We now handle this different and 'test-https.t' is green again. diff --git a/mercurial/sslutil.py b/mercurial/sslutil.py --- a/mercurial/sslutil.py +++ b/mercurial/sslutil.py @@ -390,8 +390,12 @@ def wrapsocket(sock, keyfile, certfile, try: sslcontext.load_verify_locations(cafile=settings['cafile']) except ssl.SSLError as e: + if len(e.args) == 1: # pypy has different SSLError args + msg = e.args[0] + else: + msg = e.args[1] raise error.Abort(_('error loading CA file %s: %s') % ( - settings['cafile'], e.args[1]), + settings['cafile'], msg), hint=_('file is empty or malformed?')) caloaded = True elif settings['allowloaddefaultcerts']: