From c3524b9d3b8579f1aa79bf8c123299a94f4dcc18 Mon Sep 17 00:00:00 2001 From: Marek Gradzki Date: Mon, 20 Nov 2017 14:00:32 +0100 Subject: Use InetAddresses.forString instead of InetAddress.getByName Unlike InetAddress.getByName(), Guava's InetAddresses.forString() never cause DNS services to be accessed. JDK equivalents whenever you are expecting to handle only IP address string literals, so there is no blocking DNS penalty for a malformed string. See: https://google.github.io/guava/releases/22.0/api/docs/com/google/common/net/InetAddresses.html#forString-java.lang.String- Change-Id: I7972c09f1f0a3a2688021302acbf6df112be7f72 Signed-off-by: Marek Gradzki --- .../fd/hc2vpp/lisp/translate/util/EidTranslator.java | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) (limited to 'lisp') diff --git a/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/util/EidTranslator.java b/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/util/EidTranslator.java index c8e868086..039aa1bf9 100755 --- a/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/util/EidTranslator.java +++ b/lisp/lisp2vpp/src/main/java/io/fd/hc2vpp/lisp/translate/util/EidTranslator.java @@ -18,6 +18,7 @@ package io.fd.hc2vpp.lisp.translate.util; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; +import static com.google.common.net.InetAddresses.forString; import static io.fd.hc2vpp.lisp.translate.read.dump.executor.params.MappingsDumpParams.EidType; import static io.fd.hc2vpp.lisp.translate.read.dump.executor.params.MappingsDumpParams.EidType.IPV4; import static io.fd.hc2vpp.lisp.translate.read.dump.executor.params.MappingsDumpParams.EidType.IPV4_PREFIX; @@ -25,12 +26,9 @@ import static io.fd.hc2vpp.lisp.translate.read.dump.executor.params.MappingsDump import static io.fd.hc2vpp.lisp.translate.read.dump.executor.params.MappingsDumpParams.EidType.IPV6_PREFIX; import static io.fd.hc2vpp.lisp.translate.read.dump.executor.params.MappingsDumpParams.EidType.MAC; import static java.lang.Integer.parseInt; -import static java.lang.String.format; import inet.ipaddr.IPAddress; import io.fd.hc2vpp.common.translate.util.AddressTranslator; -import java.net.InetAddress; -import java.net.UnknownHostException; import java.util.Arrays; import javax.annotation.Nonnull; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4AddressNoZone; @@ -200,7 +198,7 @@ public interface EidTranslator extends AddressTranslator, EidMetadataProvider { static String prefixValue(final String prefix, final String suffix) { // normalize prefix based address to prevent duplicates - IPAddress normalizedForm = IPAddress.from(getAddress(prefix)).toSubnet(parseInt(suffix)); + IPAddress normalizedForm = IPAddress.from(forString(prefix)).toSubnet(parseInt(suffix)); return normalizedForm.toCompressedString(); } @@ -601,9 +599,9 @@ public interface EidTranslator extends AddressTranslator, EidMetadataProvider { final String[] secondPrefixParts = getPrefixParts(secondPrefix); IPAddress firstAddress = - IPAddress.from(getAddress(firstPrefixParts[0])).toSubnet(parseInt(firstPrefixParts[1])); + IPAddress.from(forString(firstPrefixParts[0])).toSubnet(parseInt(firstPrefixParts[1])); IPAddress secondAddress = - IPAddress.from(getAddress(secondPrefixParts[0])).toSubnet(parseInt(secondPrefixParts[1])); + IPAddress.from(forString(secondPrefixParts[0])).toSubnet(parseInt(secondPrefixParts[1])); return firstAddress.compareTo(secondAddress) == 0; } @@ -613,12 +611,4 @@ public interface EidTranslator extends AddressTranslator, EidMetadataProvider { checkArgument(split.length == 2, "%s is not a valid ip prefix", prefixString); return split; } - - static InetAddress getAddress(final String value) { - try { - return InetAddress.getByName(value); - } catch (UnknownHostException e) { - throw new IllegalArgumentException(format("Unable to convert %s", value), e); - } - } } -- cgit 1.2.3-korg