# HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 2019-06-11 17:53:14 # Node ID 8306b6c29add62627a2c38528feaec6f030c4eac # Parent 683aeef12830534d6e681737ac670449bcdf932e py3: hack around inconsistency of type of name passed to DNSQuestion I don't like this patch but this is the easiest way I could fix it. There are some callers which pass name which is bytes, some pass name which is str. I just encode() that if that's str. This does makes test-paths.t pass, but I am not confident whether the whole of zeroconf will work on py3 or not. Differential Revision: https://phab.mercurial-scm.org/D6511 diff --git a/contrib/python3-whitelist b/contrib/python3-whitelist --- a/contrib/python3-whitelist +++ b/contrib/python3-whitelist @@ -518,6 +518,7 @@ test-pathconflicts-basic.t test-pathconflicts-merge.t test-pathconflicts-update.t test-pathencode.py +test-paths.t test-pending.t test-permissions.t test-phabricator.t diff --git a/hgext/zeroconf/Zeroconf.py b/hgext/zeroconf/Zeroconf.py --- a/hgext/zeroconf/Zeroconf.py +++ b/hgext/zeroconf/Zeroconf.py @@ -89,6 +89,8 @@ import threading import time import traceback +from mercurial import pycompat + __all__ = ["Zeroconf", "ServiceInfo", "ServiceBrowser"] # hook for threads @@ -270,6 +272,8 @@ class DNSQuestion(DNSEntry): """A DNS question entry""" def __init__(self, name, type, clazz): + if pycompat.ispy3 and isinstance(name, str): + name = name.encode('ascii') if not name.endswith(".local."): raise NonLocalNameException(name) DNSEntry.__init__(self, name, type, clazz)