py3: more robustly cast UUID to bytes
The UUID type only has __str__ implemented. So we need to cast to
bytes on Python 3.
We need an actual bytes instance here (bytestr won't do) because
the re.escape() later iterates over characters and characters
need to behave like ints, not bytes instances of length 1.
Differential Revision: https://phab.mercurial-scm.org/D2144
--- a/mercurial/sshpeer.py Sun Feb 11 13:09:16 2018 -0800
+++ b/mercurial/sshpeer.py Sun Feb 11 13:23:26 2018 -0800
@@ -220,7 +220,7 @@
# Generate a random token to help identify responses to version 2
# upgrade request.
- token = bytes(uuid.uuid4())
+ token = pycompat.sysbytes(str(uuid.uuid4()))
upgradecaps = [
('proto', wireprotoserver.SSHV2),
]