Mercurial > hg-stable
changeset 41533:a36f462cf533
zeroconf: Python 3 porting of vendored library
A quick glance through this module reveals that most of it "just works"
on Python 3 with the source transformer active. There are a few
places where we need to ensure we're using str.
Differential Revision: https://phab.mercurial-scm.org/D5804
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sat, 02 Feb 2019 11:49:26 -0800 |
parents | 530d211ae9a8 |
children | 3e9c6cef949b |
files | hgext/zeroconf/Zeroconf.py |
diffstat | 1 files changed, 6 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/zeroconf/Zeroconf.py Tue Jan 22 14:22:25 2019 +0800 +++ b/hgext/zeroconf/Zeroconf.py Sat Feb 02 11:49:26 2019 -0800 @@ -84,7 +84,6 @@ import itertools import select import socket -import string import struct import threading import time @@ -106,7 +105,7 @@ # Some DNS constants -_MDNS_ADDR = '224.0.0.251' +_MDNS_ADDR = r'224.0.0.251' _MDNS_PORT = 5353 _DNS_PORT = 53 _DNS_TTL = 60 * 60 # one hour default TTL @@ -221,7 +220,7 @@ """A DNS entry""" def __init__(self, name, type, clazz): - self.key = string.lower(name) + self.key = name.lower() self.name = name self.type = type self.clazz = clazz & _CLASS_MASK @@ -620,7 +619,7 @@ first = off while True: - len = ord(self.data[off]) + len = ord(self.data[off:off + 1]) off += 1 if len == 0: break @@ -631,7 +630,7 @@ elif t == 0xC0: if next < 0: next = off + 1 - off = ((len & 0x3F) << 8) | ord(self.data[off]) + off = ((len & 0x3F) << 8) | ord(self.data[off:off + 1]) if off >= first: raise BadDomainNameCircular(off) first = off @@ -1333,7 +1332,7 @@ # SO_REUSEADDR and SO_REUSEPORT have been set, so ignore it pass self.socket.setsockopt(socket.SOL_IP, socket.IP_ADD_MEMBERSHIP, - socket.inet_aton(_MDNS_ADDR) + socket.inet_aton('0.0.0.0')) + socket.inet_aton(_MDNS_ADDR) + socket.inet_aton(r'0.0.0.0')) self.listeners = [] self.browsers = [] @@ -1657,7 +1656,7 @@ self.engine.notify() self.unregisterAllServices() self.socket.setsockopt(socket.SOL_IP, socket.IP_DROP_MEMBERSHIP, - socket.inet_aton(_MDNS_ADDR) + socket.inet_aton('0.0.0.0')) + socket.inet_aton(_MDNS_ADDR) + socket.inet_aton(r'0.0.0.0')) self.socket.close() # Test a few module features, including service registration, service