[Differential] D5805: zeroconf: port to Python 3

pulkit (Pulkit Goyal) phabricator at mercurial-scm.org
Tue Jun 11 17:03:08 UTC 2019


pulkit updated this revision to Diff 15444.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D5805?vs=13705&id=15444

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

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

AFFECTED FILES
  hgext/zeroconf/__init__.py

CHANGE DETAILS

diff --git a/hgext/zeroconf/__init__.py b/hgext/zeroconf/__init__.py
--- a/hgext/zeroconf/__init__.py
+++ b/hgext/zeroconf/__init__.py
@@ -34,6 +34,7 @@
     encoding,
     extensions,
     hg,
+    pycompat,
     ui as uimod,
 )
 from mercurial.hgweb import (
@@ -55,7 +56,7 @@
     # finds external-facing interface without sending any packets (Linux)
     try:
         s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
-        s.connect(('1.0.0.1', 0))
+        s.connect((r'1.0.0.1', 0))
         ip = s.getsockname()[0]
         return ip
     except socket.error:
@@ -64,17 +65,17 @@
     # Generic method, sometimes gives useless results
     try:
         dumbip = socket.gethostbyaddr(socket.gethostname())[2][0]
-        if ':' in dumbip:
-            dumbip = '127.0.0.1'
-        if not dumbip.startswith('127.'):
+        if r':' in dumbip:
+            dumbip = r'127.0.0.1'
+        if not dumbip.startswith(r'127.'):
             return dumbip
     except (socket.gaierror, socket.herror):
-        dumbip = '127.0.0.1'
+        dumbip = r'127.0.0.1'
 
     # works elsewhere, but actually sends a packet
     try:
         s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
-        s.connect(('1.0.0.1', 1))
+        s.connect((r'1.0.0.1', 1))
         ip = s.getsockname()[0]
         return ip
     except socket.error:
@@ -86,33 +87,35 @@
     global server, localip
     if not server:
         ip = getip()
-        if ip.startswith('127.'):
+        if ip.startswith(r'127.'):
             # if we have no internet connection, this can happen.
             return
         localip = socket.inet_aton(ip)
         server = Zeroconf.Zeroconf(ip)
 
-    hostname = socket.gethostname().split('.')[0]
-    host = hostname + ".local"
-    name = "%s-%s" % (hostname, name)
+    hostname = socket.gethostname().split(r'.')[0]
+    host = hostname + r".local"
+    name = r"%s-%s" % (hostname, name)
 
     # advertise to browsers
     svc = Zeroconf.ServiceInfo('_http._tcp.local.',
-                               name + '._http._tcp.local.',
+                               pycompat.bytestr(name + r'._http._tcp.local.'),
                                server = host,
                                port = port,
-                               properties = {'description': desc,
-                                             'path': "/" + path},
+                               properties = {
+                                   'description': desc,
+                                   'path': "/" + path},
                                address = localip, weight = 0, priority = 0)
     server.registerService(svc)
 
     # advertise to Mercurial clients
     svc = Zeroconf.ServiceInfo('_hg._tcp.local.',
-                               name + '._hg._tcp.local.',
+                               pycompat.bytestr(name + r'._hg._tcp.local.'),
                                server = host,
                                port = port,
-                               properties = {'description': desc,
-                                             'path': "/" + path},
+                               properties = {
+                                   'description': desc,
+                                   'path': "/" + path},
                                address = localip, weight = 0, priority = 0)
     server.registerService(svc)
 
@@ -158,7 +161,7 @@
 
 def getzcpaths():
     ip = getip()
-    if ip.startswith('127.'):
+    if ip.startswith(r'127.'):
         return
     server = Zeroconf.Zeroconf(ip)
     l = listener()
@@ -166,10 +169,10 @@
     time.sleep(1)
     server.close()
     for value in l.found.values():
-        name = value.name[:value.name.index('.')]
-        url = "http://%s:%s%s" % (socket.inet_ntoa(value.address), value.port,
-                                  value.properties.get("path", "/"))
-        yield "zc-" + name, url
+        name = value.name[:value.name.index(b'.')]
+        url = r"http://%s:%s%s" % (socket.inet_ntoa(value.address), value.port,
+                                  value.properties.get(r"path", r"/"))
+        yield b"zc-" + name, pycompat.bytestr(url)
 
 def config(orig, self, section, key, *args, **kwargs):
     if section == "paths" and key.startswith("zc-"):



To: indygreg, #hg-reviewers
Cc: yuja, mercurial-devel


More information about the Mercurial-devel mailing list