diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e433250330d774f871154283572eb9866b960b0..ebe22a3cc46882e1e4ea4c84e481a685e65c44f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ changed functionality, fixed bugs). to edit `flamenco-worker.cfg`. - Only fail UPnP/SSDP discovery when it fails to send on both IPv4 and IPv6. - Creating distribution files using [PyInstaller](http://www.pyinstaller.org/). +- Fixed UPnP/SSDP discovery issues on Windows. ## Version 2.0.7 (released 2017-07-04) diff --git a/flamenco_worker/ssdp_discover.py b/flamenco_worker/ssdp_discover.py index 1cb29456999799b436c5b7b3fa5c71486309f1eb..28c6c549ed5e1cad34d034fd6d93c0b55b7c52ae 100644 --- a/flamenco_worker/ssdp_discover.py +++ b/flamenco_worker/ssdp_discover.py @@ -67,8 +67,14 @@ def find_flamenco_manager(timeout=1, retries=5): except OSError: # Not supported on Windows and AF_INET6. pass + 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)) + try: for _ in range(2): # sending it more than once will