Fix for NPE when getting network interface name (#14603)

Signed-off-by: Mark Hilbush <mark@hilbush.com>
This commit is contained in:
Mark Hilbush
2023-03-14 17:32:03 -04:00
committed by GitHub
parent 596324635d
commit d4b68b2df4
5 changed files with 12 additions and 12 deletions

View File

@@ -63,8 +63,9 @@ public class MulticastListener {
*/
public MulticastListener(String ipv4Address) throws IOException, SocketException {
InetAddress ifAddress = InetAddress.getByName(ipv4Address);
NetworkInterface netIF = NetworkInterface.getByInetAddress(ifAddress);
logger.debug("Discovery job using address {} on network interface {}", ifAddress.getHostAddress(),
NetworkInterface.getByInetAddress(ifAddress).getName());
netIF != null ? netIF.getName() : "UNKNOWN");
socket = new MulticastSocket(GC_MULTICAST_PORT);
socket.setInterface(ifAddress);
socket.setSoTimeout(DEFAULT_SOCKET_TIMEOUT);

View File

@@ -105,8 +105,9 @@ public class GlobalCacheHandler extends BaseThingHandler {
logger.debug("Initializing thing {}", thingID());
try {
ifAddress = InetAddress.getByName(ipv4Address);
NetworkInterface netIF = NetworkInterface.getByInetAddress(ifAddress);
logger.debug("Handler using address {} on network interface {}", ifAddress.getHostAddress(),
NetworkInterface.getByInetAddress(ifAddress).getName());
netIF != null ? netIF.getName() : "UNKNOWN");
} catch (SocketException e) {
logger.error("Handler got Socket exception creating multicast socket: {}", e.getMessage());
markThingOfflineWithError(ThingStatusDetail.OFFLINE.CONFIGURATION_ERROR, "No suitable network interface");