From 412767459538f9665a246813b2fb6a6c29be9ada Mon Sep 17 00:00:00 2001 From: kpanchen <43836896+kpanchen@users.noreply.github.com> Date: Thu, 14 Feb 2019 02:26:42 -0500 Subject: [PATCH] Update NetworkUtils.java (#4898) Added Eli Fulkerson ARP Ping tool detection. Added command line to nativeARPPing subrooting for Eli Fulkerson ARP Ping tool. Signed-off-by: Konstantin Panchenko --- .../binding/network/internal/utils/NetworkUtils.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/addons/binding/org.openhab.binding.network/src/main/java/org/openhab/binding/network/internal/utils/NetworkUtils.java b/addons/binding/org.openhab.binding.network/src/main/java/org/openhab/binding/network/internal/utils/NetworkUtils.java index bee510d0ab673..ad49ea268515e 100644 --- a/addons/binding/org.openhab.binding.network/src/main/java/org/openhab/binding/network/internal/utils/NetworkUtils.java +++ b/addons/binding/org.openhab.binding.network/src/main/java/org/openhab/binding/network/internal/utils/NetworkUtils.java @@ -207,6 +207,8 @@ public ArpPingUtilEnum determineNativeARPpingMethod(String arpToolPath) { } } else if (result.contains("-w timeout")) { return ArpPingUtilEnum.IPUTILS_ARPING; + } else if (result.contains("Usage: arp-ping.exe")) { + return ArpPingUtilEnum.ELI_FULKERSON_ARP_PING_FOR_WINDOWS; } return ArpPingUtilEnum.UNKNOWN_TOOL; } @@ -283,7 +285,8 @@ public enum ArpPingUtilEnum { UNKNOWN_TOOL, IPUTILS_ARPING, THOMAS_HABERT_ARPING, - THOMAS_HABERT_ARPING_WITHOUT_TIMEOUT + THOMAS_HABERT_ARPING_WITHOUT_TIMEOUT, + ELI_FULKERSON_ARP_PING_FOR_WINDOWS } /** @@ -293,7 +296,7 @@ public enum ArpPingUtilEnum { * * https://github.com/ThomasHabets/arping which also works on Windows and MacOS. * * @param arpUtilPath The arping absolute path including filename. Example: "arping" or "/usr/bin/arping" or - * "C:\something\arping.exe" + * "C:\something\arping.exe" or "arp-ping.exe" * @param interfaceName An interface name, on linux for example "wlp58s0", shown by ifconfig. Must not be null. * @param ipV4address The ipV4 address. Must not be null. * @param timeoutInMS A timeout in milliseconds @@ -311,6 +314,9 @@ public boolean nativeARPPing(@Nullable ArpPingUtilEnum arpingTool, @Nullable Str } else if (arpingTool == ArpPingUtilEnum.THOMAS_HABERT_ARPING) { proc = new ProcessBuilder(arpUtilPath, "-w", String.valueOf(timeoutInMS / 1000), "-C", "1", "-i", interfaceName, ipV4address).start(); + } else if (arpingTool == ArpPingUtilEnum.ELI_FULKERSON_ARP_PING_FOR_WINDOWS) { + proc = new ProcessBuilder(arpUtilPath, "-w", String.valueOf(timeoutInMS), + "-x", ipV4address).start(); } else { proc = new ProcessBuilder(arpUtilPath, "-w", String.valueOf(timeoutInMS / 1000), "-C", "1", "-I", interfaceName, ipV4address).start();