From 1b0bd6961a0a68e4f21dc6cd4fd8c8d5023bb3f6 Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Sun, 30 Oct 2011 22:35:46 +0000 Subject: [PATCH] You can't step in the same Enumeration twice. --- .../briar/plugins/socket/LanSocketPlugin.java | 13 ++++++------ .../plugins/socket/SimpleSocketPlugin.java | 20 +++++++++---------- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/components/net/sf/briar/plugins/socket/LanSocketPlugin.java b/components/net/sf/briar/plugins/socket/LanSocketPlugin.java index 3e01734138..15c5cdd623 100644 --- a/components/net/sf/briar/plugins/socket/LanSocketPlugin.java +++ b/components/net/sf/briar/plugins/socket/LanSocketPlugin.java @@ -12,6 +12,7 @@ import java.net.SocketTimeoutException; import java.net.UnknownHostException; import java.util.Collections; import java.util.Enumeration; +import java.util.List; import java.util.Random; import java.util.concurrent.Executor; import java.util.logging.Level; @@ -136,28 +137,28 @@ public class LanSocketPlugin extends SimpleSocketPlugin { private InetAddress chooseMulticastInterface() throws IOException { // Try to find a LAN interface that supports multicast - Enumeration<NetworkInterface> ifaces = - NetworkInterface.getNetworkInterfaces(); - for(NetworkInterface iface : Collections.list(ifaces)) { + List<NetworkInterface> ifaces = + Collections.list(NetworkInterface.getNetworkInterfaces()); + for(NetworkInterface iface : ifaces) { if(iface.supportsMulticast()) { Enumeration<InetAddress> addrs = iface.getInetAddresses(); for(InetAddress addr : Collections.list(addrs)) { if(addr.isLinkLocalAddress() || addr.isSiteLocalAddress()) { if(LOG.isLoggable(Level.INFO)) - LOG.info("Binding to " + addr.getHostAddress()); + LOG.info("Preferring " + addr.getHostAddress()); return addr; } } } } // Settle for a WAN interface that supports multicast - for(NetworkInterface iface : Collections.list(ifaces)) { + for(NetworkInterface iface : ifaces) { if(iface.supportsMulticast()) { Enumeration<InetAddress> addrs = iface.getInetAddresses(); for(InetAddress addr : Collections.list(addrs)) { if(!addr.isLoopbackAddress()) { if(LOG.isLoggable(Level.INFO)) - LOG.info("Binding to " + addr.getHostAddress()); + LOG.info("Accepting " + addr.getHostAddress()); return addr; } } diff --git a/components/net/sf/briar/plugins/socket/SimpleSocketPlugin.java b/components/net/sf/briar/plugins/socket/SimpleSocketPlugin.java index ac97cbcfff..1c0c2d55ef 100644 --- a/components/net/sf/briar/plugins/socket/SimpleSocketPlugin.java +++ b/components/net/sf/briar/plugins/socket/SimpleSocketPlugin.java @@ -8,7 +8,7 @@ import java.net.ServerSocket; import java.net.Socket; import java.net.SocketAddress; import java.util.Collections; -import java.util.Enumeration; +import java.util.List; import java.util.concurrent.Executor; import java.util.logging.Level; import java.util.logging.Logger; @@ -74,30 +74,28 @@ class SimpleSocketPlugin extends SocketPlugin { } protected InetAddress chooseTcpInterface(boolean lan) throws IOException { - Enumeration<NetworkInterface> ifaces = - NetworkInterface.getNetworkInterfaces(); + List<NetworkInterface> ifaces = + Collections.list(NetworkInterface.getNetworkInterfaces()); // Try to find an interface of the preferred type (LAN or WAN) - for(NetworkInterface iface : Collections.list(ifaces)) { - Enumeration<InetAddress> addrs = iface.getInetAddresses(); - for(InetAddress addr : Collections.list(addrs)) { + for(NetworkInterface iface : ifaces) { + for(InetAddress addr : Collections.list(iface.getInetAddresses())) { if(!addr.isLoopbackAddress()) { boolean link = addr.isLinkLocalAddress(); boolean site = addr.isSiteLocalAddress(); if(lan == (link || site)) { if(LOG.isLoggable(Level.INFO)) - LOG.info("Binding to " + addr.getHostAddress()); + LOG.info("Preferring " + addr.getHostAddress()); return addr; } } } } // Settle for an interface that's not of the preferred type - for(NetworkInterface iface : Collections.list(ifaces)) { - Enumeration<InetAddress> addrs = iface.getInetAddresses(); - for(InetAddress addr : Collections.list(addrs)) { + for(NetworkInterface iface : ifaces) { + for(InetAddress addr : Collections.list(iface.getInetAddresses())) { if(!addr.isLoopbackAddress()) { if(LOG.isLoggable(Level.INFO)) - LOG.info("Binding to " + addr.getHostAddress()); + LOG.info("Accepting " + addr.getHostAddress()); return addr; } } -- GitLab