Filter duplicate broadcast addresses for service configuration if multiple network interfaces are available (#2307)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>pull/2320/head
parent
6258268031
commit
a1d086c116
|
@ -48,17 +48,19 @@ public class NetworkConfigOptionProvider implements ConfigOptionProvider {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PARAM_PRIMARY_ADDRESS.equals(param)) {
|
switch (param) {
|
||||||
|
case PARAM_PRIMARY_ADDRESS:
|
||||||
Stream<CidrAddress> ipv4Addresses = NetUtil.getAllInterfaceAddresses().stream()
|
Stream<CidrAddress> ipv4Addresses = NetUtil.getAllInterfaceAddresses().stream()
|
||||||
.filter(a -> a.getAddress() instanceof Inet4Address);
|
.filter(a -> a.getAddress() instanceof Inet4Address);
|
||||||
return ipv4Addresses.map(a -> new ParameterOption(a.toString(), a.toString())).collect(Collectors.toList());
|
return ipv4Addresses.map(a -> new ParameterOption(a.toString(), a.toString()))
|
||||||
}
|
.collect(Collectors.toList());
|
||||||
|
case PARAM_BROADCAST_ADDRESS:
|
||||||
if (PARAM_BROADCAST_ADDRESS.equals(param)) {
|
|
||||||
List<String> broadcastAddrList = new ArrayList<>(NetUtil.getAllBroadcastAddresses());
|
List<String> broadcastAddrList = new ArrayList<>(NetUtil.getAllBroadcastAddresses());
|
||||||
broadcastAddrList.add("255.255.255.255");
|
broadcastAddrList.add("255.255.255.255");
|
||||||
return broadcastAddrList.stream().map(a -> new ParameterOption(a, a)).collect(Collectors.toList());
|
return broadcastAddrList.stream().distinct().map(a -> new ParameterOption(a, a))
|
||||||
}
|
.collect(Collectors.toList());
|
||||||
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue