From 4ae4bbd52749908fabda0e445577b253bcb4bda2 Mon Sep 17 00:00:00 2001 From: Ohad Shacham Date: Tue, 24 Apr 2018 15:39:59 +0300 Subject: [PATCH] [OMID-97] New MacBooks include a TouchBar. This touch bar has a usb link that called iBridge. When choosing a network interface Omid accidentally chooses this iBridge instead of choosing the Ethernet or the Wifi. --- .../src/main/java/org/apache/omid/NetworkUtils.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/common/src/main/java/org/apache/omid/NetworkUtils.java b/common/src/main/java/org/apache/omid/NetworkUtils.java index 09bd626ef..751a733cd 100644 --- a/common/src/main/java/org/apache/omid/NetworkUtils.java +++ b/common/src/main/java/org/apache/omid/NetworkUtils.java @@ -22,6 +22,7 @@ import java.net.NetworkInterface; import java.net.SocketException; +import java.util.Collections; import java.util.Enumeration; public class NetworkUtils { @@ -36,11 +37,14 @@ public static String getDefaultNetworkInterface() { try { Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces(); while (networkInterfaces.hasMoreElements()) { - String name = networkInterfaces.nextElement().getDisplayName(); + NetworkInterface nextElement = networkInterfaces.nextElement(); + String name = nextElement.getDisplayName(); LOG.info("Iterating over network interfaces, found '{}'", name); - if (name.startsWith(MAC_TSO_NET_IFACE_PREFIX) || name.startsWith(LINUX_TSO_NET_IFACE_PREFIX)) { - return name; - } + boolean hasInet = Collections.list(nextElement.getInetAddresses()).size() > 1; // Checking that inet exists, to avoid taking iBridge + if ((name.startsWith(MAC_TSO_NET_IFACE_PREFIX) && hasInet ) || + name.startsWith(LINUX_TSO_NET_IFACE_PREFIX)) { + return name; + } } } catch (SocketException ignored) { throw new RuntimeException("Failed to find any network interfaces", ignored);