From 80915600c9d204fc61ff9d71ae866adaa3344e79 Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Thu, 19 Oct 2017 14:29:59 +0200 Subject: [PATCH] Make board disappear via ttl instead then reachability Thanks @kurtgo for the hint Solves #6832 --- .../packages/discoverers/NetworkDiscovery.java | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/arduino-core/src/cc/arduino/packages/discoverers/NetworkDiscovery.java b/arduino-core/src/cc/arduino/packages/discoverers/NetworkDiscovery.java index e95aa3375..713956690 100644 --- a/arduino-core/src/cc/arduino/packages/discoverers/NetworkDiscovery.java +++ b/arduino-core/src/cc/arduino/packages/discoverers/NetworkDiscovery.java @@ -37,13 +37,10 @@ import javax.jmdns.*; import java.net.InetAddress; import java.util.*; -import cc.arduino.packages.discoverers.network.BoardReachabilityFilter; - public class NetworkDiscovery implements Discovery, ServiceListener, Runnable { private final List reachableBoardPorts = new LinkedList<>(); private final List boardPortsDiscoveredWithJmDNS = new LinkedList<>(); - private Timer reachabilityTimer; private JmmDNS jmdns = null; private void removeDuplicateBoards(BoardPort newBoard) { @@ -81,6 +78,7 @@ public class NetworkDiscovery implements Discovery, ServiceListener, Runnable { } ServiceInfo info = serviceEvent.getInfo(); + for (InetAddress inetAddress : info.getInet4Addresses()) { String address = inetAddress.getHostAddress(); String name = serviceEvent.getName(); @@ -145,10 +143,9 @@ public class NetworkDiscovery implements Discovery, ServiceListener, Runnable { @Override public void start() { + System.getProperties().setProperty("net.dns.ttl", "10"); jmdns = JmmDNS.Factory.getInstance(); jmdns.addServiceListener("_arduino._tcp.local.", this); - reachabilityTimer = new Timer(); - new BoardReachabilityFilter(this).start(reachabilityTimer); } @Override @@ -164,15 +161,12 @@ public class NetworkDiscovery implements Discovery, ServiceListener, Runnable { e.printStackTrace(); } */ - if (reachabilityTimer != null) { - reachabilityTimer.cancel(); - } } @Override public List listDiscoveredBoards() { synchronized (reachableBoardPorts) { - return new LinkedList<>(reachableBoardPorts); + return getBoardPortsDiscoveredWithJmDNS(); } }