mirror of
https://github.com/danieldemus/openhab-core.git
synced 2026-07-29 12:34:22 +02:00
Filter duplicate broadcast addresses for service configuration if multiple network interfaces are available (#2307)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
This commit is contained in:
+13
-11
@@ -48,17 +48,19 @@ public class NetworkConfigOptionProvider implements ConfigOptionProvider {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (PARAM_PRIMARY_ADDRESS.equals(param)) {
|
||||
Stream<CidrAddress> ipv4Addresses = NetUtil.getAllInterfaceAddresses().stream()
|
||||
.filter(a -> a.getAddress() instanceof Inet4Address);
|
||||
return ipv4Addresses.map(a -> new ParameterOption(a.toString(), a.toString())).collect(Collectors.toList());
|
||||
switch (param) {
|
||||
case PARAM_PRIMARY_ADDRESS:
|
||||
Stream<CidrAddress> ipv4Addresses = NetUtil.getAllInterfaceAddresses().stream()
|
||||
.filter(a -> a.getAddress() instanceof Inet4Address);
|
||||
return ipv4Addresses.map(a -> new ParameterOption(a.toString(), a.toString()))
|
||||
.collect(Collectors.toList());
|
||||
case PARAM_BROADCAST_ADDRESS:
|
||||
List<String> broadcastAddrList = new ArrayList<>(NetUtil.getAllBroadcastAddresses());
|
||||
broadcastAddrList.add("255.255.255.255");
|
||||
return broadcastAddrList.stream().distinct().map(a -> new ParameterOption(a, a))
|
||||
.collect(Collectors.toList());
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
||||
if (PARAM_BROADCAST_ADDRESS.equals(param)) {
|
||||
List<String> broadcastAddrList = new ArrayList<>(NetUtil.getAllBroadcastAddresses());
|
||||
broadcastAddrList.add("255.255.255.255");
|
||||
return broadcastAddrList.stream().map(a -> new ParameterOption(a, a)).collect(Collectors.toList());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user