From ab8ffe256d0c4d44a977fb5a1b9e1be86a116afc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= <sybren@stuvel.eu> Date: Wed, 6 Sep 2017 15:46:29 +0200 Subject: [PATCH] SSDP discovery: only do Windows-specific fix on Windows Also changed from getting the local IP address to just using 0.0.0.0, which seems to work too. --- flamenco_worker/ssdp_discover.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/flamenco_worker/ssdp_discover.py b/flamenco_worker/ssdp_discover.py index 28c6c549..f2e611e8 100644 --- a/flamenco_worker/ssdp_discover.py +++ b/flamenco_worker/ssdp_discover.py @@ -1,4 +1,5 @@ import logging +import platform import socket from http.client import HTTPResponse @@ -44,6 +45,7 @@ def find_flamenco_manager(timeout=1, retries=5): log.info('Finding Flamenco Manager through UPnP/SSDP discovery.') families_and_addresses = set(interface_addresses()) + is_windows = platform.system() == 'Windows' for _ in range(retries): failed_families = 0 @@ -71,9 +73,8 @@ def find_flamenco_manager(timeout=1, retries=5): sock.bind(('', 1901)) # Required on Windows, otherwise the message won't go out. - if family == socket.AF_INET: - host = socket.gethostbyname(socket.gethostname()) - sock.setsockopt(socket.SOL_IP, socket.IP_MULTICAST_IF, socket.inet_aton(host)) + if is_windows and family == socket.AF_INET: + sock.setsockopt(socket.SOL_IP, socket.IP_MULTICAST_IF, socket.inet_aton('0.0.0.0')) try: for _ in range(2): -- GitLab