safehasattr: pass attribute name as string instead of bytes
authorPierre-Yves David <pierre-yves.david@octobus.net>
Thu, 02 Feb 2023 17:36:15 +0100
changeset 50602 b73bae3520b8
parent 50601 a2f922825721
child 50603 d1502345f89c
safehasattr: pass attribute name as string instead of bytes This is a step toward replacing `util.safehasattr` usage with plain `hasattr`. The builtin function behave poorly in Python2 but this was fixed in Python3. These change are done one by one as they tend to have a small odd to trigger puzzling breackage.
mercurial/sslutil.py
--- a/mercurial/sslutil.py	Thu Feb 02 17:36:07 2023 +0100
+++ b/mercurial/sslutil.py	Thu Feb 02 17:36:15 2023 +0100
@@ -628,7 +628,7 @@
     # Otherwise, use the list of more secure ciphers if found in the ssl module.
     if exactprotocol:
         sslcontext.set_ciphers('DEFAULT:@SECLEVEL=0')
-    elif util.safehasattr(ssl, b'_RESTRICTED_SERVER_CIPHERS'):
+    elif util.safehasattr(ssl, '_RESTRICTED_SERVER_CIPHERS'):
         sslcontext.options |= getattr(ssl, 'OP_CIPHER_SERVER_PREFERENCE', 0)
         # pytype: disable=module-attr
         sslcontext.set_ciphers(ssl._RESTRICTED_SERVER_CIPHERS)