From f84720edfe28c1883a106e061103ccc35846279f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20M=C3=BCller?= Date: Tue, 6 Jan 2015 13:40:25 +0100 Subject: [PATCH 1/2] silently skip exception raised if "Address already in use" --- zeroconf.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/zeroconf.py b/zeroconf.py index 976897a7..69397d24 100644 --- a/zeroconf.py +++ b/zeroconf.py @@ -1264,9 +1264,12 @@ def __init__( self._respond_sockets = [] for i in interfaces: - self._listen_socket.setsockopt( - socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, - socket.inet_aton(_MDNS_ADDR) + socket.inet_aton(i)) + try: + self._listen_socket.setsockopt( + socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, + socket.inet_aton(_MDNS_ADDR) + socket.inet_aton(i)) + except Exception: + pass respond_socket = new_socket() respond_socket.setsockopt( From 4c2a479e3a9db2ca7f2f8c5e64378bb39fa845aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20M=C3=BCller?= Date: Tue, 6 Jan 2015 13:41:19 +0100 Subject: [PATCH 2/2] Iterate on all interfaces instead of just the default interface --- zeroconf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zeroconf.py b/zeroconf.py index 69397d24..a5fe3150 100644 --- a/zeroconf.py +++ b/zeroconf.py @@ -1590,7 +1590,7 @@ def close(self): logging.basicConfig(level=logging.DEBUG) log.setLevel(logging.DEBUG) print("Multicast DNS Service Discovery for Python, version %s" % __version__) - r = Zeroconf() + r = Zeroconf(InterfaceChoice.All) print("1. Testing registration of a service...") desc = {'version': '0.10', 'a': 'test value', 'b': 'another value'} info = ServiceInfo("_http._tcp.local.",