Patchwork D6511: py3: hack around inconsistency of type of name passed to DNSQuestion

login
register
mail settings
Submitter phabricator
Date June 11, 2019, 6 p.m.
Message ID <differential-rev-PHID-DREV-iudaq3fnsc5szhgwgv5r-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/40429/
State Superseded
Headers show

Comments

phabricator - June 11, 2019, 6 p.m.
pulkit created this revision.
Herald added subscribers: mercurial-devel, mjpieters.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  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.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D6511

AFFECTED FILES
  contrib/python3-whitelist
  hgext/zeroconf/Zeroconf.py

CHANGE DETAILS




To: pulkit, #hg-reviewers
Cc: mjpieters, mercurial-devel
phabricator - June 29, 2019, 3:54 p.m.
pulkit added a comment.


  Review ping for this stack.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D6511/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D6511

To: pulkit, #hg-reviewers
Cc: mjpieters, mercurial-devel

Patch

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 time
 import traceback
 
+from mercurial import pycompat
+
 __all__ = ["Zeroconf", "ServiceInfo", "ServiceBrowser"]
 
 # hook for threads
@@ -270,6 +272,8 @@ 
     """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)
diff --git a/contrib/python3-whitelist b/contrib/python3-whitelist
--- a/contrib/python3-whitelist
+++ b/contrib/python3-whitelist
@@ -517,6 +517,7 @@ 
 test-pathconflicts-merge.t
 test-pathconflicts-update.t
 test-pathencode.py
+test-paths.t
 test-pending.t
 test-permissions.t
 test-phabricator.t