zeroconf: fix an issue concatenating bytes and str
`bytes(length)` doesn't do what we want, so use `str`.
There appear to be a ton more issues in this extension, including:
- globals()[b'_GLOBAL_DONE'] using bytes as the key
- `__author__` and similar using bytes
- `BadDomainName` is feeding bytes to the Exception constructor
- DNSRecord.toString() has the wrong signature (should be str, not bytes)
Differential Revision: https://phab.mercurial-scm.org/D11303
--- a/hgext/zeroconf/Zeroconf.py Tue Aug 24 23:42:35 2021 +0200
+++ b/hgext/zeroconf/Zeroconf.py Wed Aug 18 14:58:42 2021 -0400
@@ -770,7 +770,7 @@
def writeString(self, value, length):
"""Writes a string to the packet"""
- format = b'!' + str(length) + b's'
+ format = '!' + str(length) + 's'
self.data.append(struct.pack(format, value))
self.size += length