From: <jlg...@us...> - 2007-03-21 12:32:45
|
Revision: 96 http://trivial.svn.sourceforge.net/trivial/?rev=96&view=rev Author: jlgeering Date: 2007-03-21 05:32:45 -0700 (Wed, 21 Mar 2007) Log Message: ----------- JmDNS FIXING: all interfaces, temp hack. + other fixes Modified Paths: -------------- trunk/eclipse/bonjour/jmdns/src/javax/jmdns/JmDNS.java Modified: trunk/eclipse/bonjour/jmdns/src/javax/jmdns/JmDNS.java =================================================================== --- trunk/eclipse/bonjour/jmdns/src/javax/jmdns/JmDNS.java 2007-03-19 19:54:15 UTC (rev 95) +++ trunk/eclipse/bonjour/jmdns/src/javax/jmdns/JmDNS.java 2007-03-21 12:32:45 UTC (rev 96) @@ -171,6 +171,7 @@ try { InetAddress addr = InetAddress.getLocalHost(); + System.out.println(addr.getHostName()); init(addr.isLoopbackAddress() ? null : addr, addr.getHostName()); // [PJYF Oct 14 2004] Why do we disallow the loopback address? } catch (IOException e) @@ -204,12 +205,14 @@ private void init(InetAddress address, String name) throws IOException { // A host name with "." is illegal. so strip off everything and append .local. - int idx = name.indexOf("."); - if (idx > 0) - { - name = name.substring(0, idx); - } - name += ".local."; +// int idx = name.indexOf("."); +// if (idx > 0) +// { +// name = name.substring(0, idx); +// } +// name += ".local."; + name = name.replaceFirst("\\..*", ".local."); + // localHost to IP address binding localHost = new HostInfo(address, name); @@ -232,7 +235,7 @@ incomingListener = new Thread(new SocketListener(), "JmDNS.SocketListener"); // Bind to multicast socket - openMulticastSocket(localHost); + openMulticastSocket(); start(services.values()); } @@ -254,7 +257,8 @@ } } - private void openMulticastSocket(HostInfo hostInfo) throws IOException + // Removed HostInfo hostInfo (not used -> localhost) + private void openMulticastSocket() throws IOException { if (group == null) { @@ -265,9 +269,14 @@ this.closeMulticastSocket(); } socket = new MulticastSocket(DNSConstants.MDNS_PORT); - if ((hostInfo != null) && (localHost.getInterface() != null)) + // As far as I can tell, hostInfo always == localhost so: + // Either hostInfo != null && hostInfo.getInterface != null + // or the same with localHost. + if ((localHost != null) && (localHost.getInterface() != null)) { - socket.setNetworkInterface(hostInfo.getInterface()); + // NO! Listen on all interfaces. + // TODO this is a temp hack. +// socket.setNetworkInterface(localHost.getInterface()); } socket.setTimeToLive(255); socket.joinGroup(group); @@ -346,11 +355,12 @@ * Note: May not be the same as what started. The host name is subject to * negotiation. */ - public String getHostName() - { - return localHost.getName(); - } - + // Not used ! +// public String getHostName() +// { +// return localHost.getName(); +// } +// public HostInfo getLocalHost() { return localHost; @@ -2286,7 +2296,7 @@ // try { - openMulticastSocket(localHost); + openMulticastSocket(); start(oldServiceInfos); } catch (Exception exception) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |