From 57b4cca107a69e42d2fd326d6c55d702950a9fa3 Mon Sep 17 00:00:00 2001 From: Leo Siepel Date: Thu, 12 Sep 2024 14:14:47 +0200 Subject: [PATCH 1/2] Remove apache Signed-off-by: Leo Siepel --- .../discovery/PLCDiscoveryService.java | 43 +++---------------- 1 file changed, 6 insertions(+), 37 deletions(-) diff --git a/bundles/org.openhab.binding.plclogo/src/main/java/org/openhab/binding/plclogo/internal/discovery/PLCDiscoveryService.java b/bundles/org.openhab.binding.plclogo/src/main/java/org/openhab/binding/plclogo/internal/discovery/PLCDiscoveryService.java index 2eb8f18208aa6..2ebe8b530aba0 100644 --- a/bundles/org.openhab.binding.plclogo/src/main/java/org/openhab/binding/plclogo/internal/discovery/PLCDiscoveryService.java +++ b/bundles/org.openhab.binding.plclogo/src/main/java/org/openhab/binding/plclogo/internal/discovery/PLCDiscoveryService.java @@ -15,27 +15,21 @@ import static org.openhab.binding.plclogo.internal.PLCLogoBindingConstants.THING_TYPE_DEVICE; import java.io.IOException; -import java.net.Inet4Address; import java.net.InetAddress; -import java.net.InterfaceAddress; -import java.net.NetworkInterface; -import java.net.SocketException; -import java.util.Arrays; -import java.util.Enumeration; +import java.util.List; import java.util.Set; -import java.util.TreeSet; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.RejectedExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; -import org.apache.commons.net.util.SubnetUtils; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.core.config.discovery.AbstractDiscoveryService; import org.openhab.core.config.discovery.DiscoveryResultBuilder; import org.openhab.core.config.discovery.DiscoveryService; import org.openhab.core.model.script.actions.Ping; +import org.openhab.core.net.NetUtil; import org.openhab.core.thing.ThingTypeUID; import org.openhab.core.thing.ThingUID; import org.osgi.service.component.annotations.Component; @@ -107,44 +101,19 @@ protected void startScan() { logger.debug("Start scan for LOGO! bridge"); - Enumeration devices = null; - try { - devices = NetworkInterface.getNetworkInterfaces(); - } catch (SocketException exception) { - logger.warn("LOGO! bridge discovering: {}.", exception.toString()); - } - - Set addresses = new TreeSet<>(); - while ((devices != null) && devices.hasMoreElements()) { - NetworkInterface device = devices.nextElement(); - try { - if (!device.isUp() || device.isLoopback()) { - continue; - } - } catch (SocketException exception) { - logger.warn("LOGO! bridge discovering: {}.", exception.toString()); - } - for (InterfaceAddress iface : device.getInterfaceAddresses()) { - InetAddress address = iface.getAddress(); - if (address instanceof Inet4Address) { - String prefix = String.valueOf(iface.getNetworkPrefixLength()); - SubnetUtils utilities = new SubnetUtils(address.getHostAddress() + "/" + prefix); - addresses.addAll(Arrays.asList(utilities.getInfo().getAllAddresses())); - } - } - } + List addressesToScan = NetUtil.getFullRangeOfAddressesToScan(); ExecutorService executor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()); - for (String address : addresses) { + for (InetAddress address : addressesToScan) { try { - executor.execute(new Runner(address)); + executor.execute(new Runner(address.getHostName())); } catch (RejectedExecutionException exception) { logger.warn("LOGO! bridge discovering: {}.", exception.toString()); } } try { - executor.awaitTermination(CONNECTION_TIMEOUT * addresses.size(), TimeUnit.MILLISECONDS); + executor.awaitTermination(CONNECTION_TIMEOUT * addressesToScan.size(), TimeUnit.MILLISECONDS); } catch (InterruptedException exception) { logger.warn("LOGO! bridge discovering: {}.", exception.toString()); } From ad54ee50af9803826c2b748b16e9c9e0719a6ae6 Mon Sep 17 00:00:00 2001 From: Leo Siepel Date: Thu, 12 Sep 2024 14:30:07 +0200 Subject: [PATCH 2/2] getHostAddress Signed-off-by: Leo Siepel --- .../binding/plclogo/internal/discovery/PLCDiscoveryService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bundles/org.openhab.binding.plclogo/src/main/java/org/openhab/binding/plclogo/internal/discovery/PLCDiscoveryService.java b/bundles/org.openhab.binding.plclogo/src/main/java/org/openhab/binding/plclogo/internal/discovery/PLCDiscoveryService.java index 2ebe8b530aba0..14d33bd2e3e7c 100644 --- a/bundles/org.openhab.binding.plclogo/src/main/java/org/openhab/binding/plclogo/internal/discovery/PLCDiscoveryService.java +++ b/bundles/org.openhab.binding.plclogo/src/main/java/org/openhab/binding/plclogo/internal/discovery/PLCDiscoveryService.java @@ -106,7 +106,7 @@ protected void startScan() { ExecutorService executor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()); for (InetAddress address : addressesToScan) { try { - executor.execute(new Runner(address.getHostName())); + executor.execute(new Runner(address.getHostAddress())); } catch (RejectedExecutionException exception) { logger.warn("LOGO! bridge discovering: {}.", exception.toString()); }