private boolean preferIPv6Addresses() { return !preferIPv4Stack() && Boolean.getBoolean(PREFER_IPV6_ADDRESSES); }
private boolean preferIPv6Addresses() { return !preferIPv4Stack() && Boolean.getBoolean(PREFER_IPV6_ADDRESSES); }
AddressDefinition pickMatchingAddress(Collection<InterfaceDefinition> interfaces) throws SocketException { Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces(); boolean preferIPv4Stack = preferIPv4Stack(); boolean preferIPv6Addresses = preferIPv6Addresses(); AddressDefinition matchingAddress = null;
AddressDefinition pickMatchingAddress(Collection<InterfaceDefinition> interfaces) throws SocketException { Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces(); boolean preferIPv4Stack = preferIPv4Stack(); boolean preferIPv6Addresses = preferIPv6Addresses(); AddressDefinition matchingAddress = null;
private AddressDefinition pickInterfaceAddressDef() throws UnknownHostException, SocketException { Collection<InterfaceDefinition> interfaces = getInterfaces(); if (interfaces.contains(new InterfaceDefinition("localhost", "127.0.0.1"))) { return pickLoopbackAddress("localhost"); } if (interfaces.contains(new InterfaceDefinition("127.0.0.1"))) { return pickLoopbackAddress(null); } logger.info("Prefer IPv4 stack is " + preferIPv4Stack() + ", prefer IPv6 addresses is " + preferIPv6Addresses()); if (interfaces.size() > 0) { AddressDefinition addressDef = pickMatchingAddress(interfaces); if (addressDef != null) { return addressDef; } } NetworkConfig networkConfig = config.getNetworkConfig(); if (networkConfig.getInterfaces().isEnabled()) { String msg = "Hazelcast CANNOT start on this node. No matching network interface found.\n" + "Interface matching must be either disabled or updated in the hazelcast.xml config file."; logger.severe(msg); throw new RuntimeException(msg); } if (networkConfig.getJoin().getTcpIpConfig().isEnabled()) { logger.warning("Could not find a matching address to start with! Picking one of non-loopback addresses."); } return pickMatchingAddress(null); }
private AddressDefinition pickInterfaceAddressDef() throws UnknownHostException, SocketException { Collection<InterfaceDefinition> interfaces = getInterfaces(); if (interfaces.contains(new InterfaceDefinition("localhost", "127.0.0.1"))) { return pickLoopbackAddress("localhost"); } if (interfaces.contains(new InterfaceDefinition("127.0.0.1"))) { return pickLoopbackAddress(null); } logger.info("Prefer IPv4 stack is " + preferIPv4Stack() + ", prefer IPv6 addresses is " + preferIPv6Addresses()); if (interfaces.size() > 0) { AddressDefinition addressDef = pickMatchingAddress(interfaces); if (addressDef != null) { return addressDef; } } NetworkConfig networkConfig = config.getNetworkConfig(); if (networkConfig.getInterfaces().isEnabled()) { String msg = "Hazelcast CANNOT start on this node. No matching network interface found.\n" + "Interface matching must be either disabled or updated in the hazelcast.xml config file."; logger.severe(msg); throw new RuntimeException(msg); } if (networkConfig.getJoin().getTcpIpConfig().isEnabled()) { logger.warning("Could not find a matching address to start with! Picking one of non-loopback addresses."); } return pickMatchingAddress(null); }