From 299201fdef7c2252ee1136052471c82a8f5f6c83 Mon Sep 17 00:00:00 2001 From: Patrick Atoon Date: Sun, 28 Apr 2013 08:26:58 +0200 Subject: [PATCH] Fix for UPnP listener not listening, which erroneously caused PMS to only detect devices when an ALIVE message was sent. Apparently forcing the network interface on a MulticastSocket created by port is okay with Java 1.6.0_45 on Mac OSX (it was removed for that reason in 98c85bce). --- src/main/java/net/pms/network/UPNPHelper.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/net/pms/network/UPNPHelper.java b/src/main/java/net/pms/network/UPNPHelper.java index 300846829..c0f3d1934 100644 --- a/src/main/java/net/pms/network/UPNPHelper.java +++ b/src/main/java/net/pms/network/UPNPHelper.java @@ -360,6 +360,15 @@ public void run() { LOGGER.warn("Finally, acquiring port " + PMS.getConfiguration().getUpnpPort() + " was successful!"); } + NetworkInterface ni = NetworkConfiguration.getInstance().getNetworkInterfaceByServerName(); + + if (ni != null) { + multicastSocket.setNetworkInterface(ni); + } else if (PMS.get().getServer().getNetworkInterface() != null) { + LOGGER.trace("Setting multicast network interface: " + PMS.get().getServer().getNetworkInterface()); + multicastSocket.setNetworkInterface(PMS.get().getServer().getNetworkInterface()); + } + multicastSocket.setTimeToLive(4); multicastSocket.setReuseAddress(true); InetAddress upnpAddress = getUPNPAddress();