comparison mercurial/sslutil.py @ 49057:27ef2aa953dd

sslutil: support TLSV1_ALERT_PROTOCOL_VERSION reason code It looks like python 3.10 returns a different reason code on protocol version mismatch. Differential Revision: https://phab.mercurial-scm.org/D12491
author Julien Cristau <jcristau@debian.org>
date Sat, 09 Apr 2022 14:41:55 +0200
parents 50bd2910d162
children eec5e00e782d
comparison
equal deleted inserted replaced
49056:7ea2bd2043d1 49057:27ef2aa953dd
423 # This error occurs when the client and server don't share a 423 # This error occurs when the client and server don't share a
424 # common/supported SSL/TLS protocol. We've disabled SSLv2 and SSLv3 424 # common/supported SSL/TLS protocol. We've disabled SSLv2 and SSLv3
425 # outright. Hopefully the reason for this error is that we require 425 # outright. Hopefully the reason for this error is that we require
426 # TLS 1.1+ and the server only supports TLS 1.0. Whatever the 426 # TLS 1.1+ and the server only supports TLS 1.0. Whatever the
427 # reason, try to emit an actionable warning. 427 # reason, try to emit an actionable warning.
428 if e.reason == 'UNSUPPORTED_PROTOCOL': 428 if e.reason in (
429 'UNSUPPORTED_PROTOCOL',
430 'TLSV1_ALERT_PROTOCOL_VERSION',
431 ):
429 # We attempted TLS 1.0+. 432 # We attempted TLS 1.0+.
430 if settings[b'minimumprotocol'] == b'tls1.0': 433 if settings[b'minimumprotocol'] == b'tls1.0':
431 # We support more than just TLS 1.0+. If this happens, 434 # We support more than just TLS 1.0+. If this happens,
432 # the likely scenario is either the client or the server 435 # the likely scenario is either the client or the server
433 # is really old. (e.g. server doesn't support TLS 1.0+ or 436 # is really old. (e.g. server doesn't support TLS 1.0+ or