This is an automated email from the ASF dual-hosted git repository.
mattjackson pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git
The following commit(s) were added to refs/heads/master by this push:
new c8db585 Remove InetAddress.getByName usage since it makes DNS
requests (#4765)
c8db585 is described below
commit c8db585c00afabf1f9845c4c01b94d7ca2109f36
Author: Rawlin Peters <[email protected]>
AuthorDate: Tue Jun 9 15:11:00 2020 -0600
Remove InetAddress.getByName usage since it makes DNS requests (#4765)
Remove some getAddress toString usage since it does dns lookups
Check if caches is null
Use .equals instead of ==, fix another NPE
Undo ZoneManager NPE fix (SERVFAIL probably better than REFUSED)
---
.../traffic_control/traffic_router/core/edge/Node.java | 12 ++++--------
.../traffic_router/core/router/TrafficRouter.java | 17 +++++------------
2 files changed, 9 insertions(+), 20 deletions(-)
diff --git
a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/edge/Node.java
b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/edge/Node.java
index 21c89fc..ea4158f 100644
---
a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/edge/Node.java
+++
b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/edge/Node.java
@@ -194,24 +194,20 @@ public class Node extends DefaultHashable {
}
for (final InetRecord record : ipAddresses) {
- if (record.getAddress() == ip4 && !ipv4Available) {
+ if (record.getAddress().equals(ip4) && !ipv4Available) {
newlyUnavailable.add(record);
- LOGGER.debug("disabling IPv4 address " +
record.getAddress());
}
- if (record.getAddress() == ip6 && !ipv6Available) {
+ if (record.getAddress().equals(ip6) && !ipv6Available) {
newlyUnavailable.add(record);
- LOGGER.debug("disabling IPv6 address " +
record.getAddress());
}
}
for (final InetRecord record : unavailableIpAddresses) {
- if (record.getAddress() == ip4 && ipv4Available) {
+ if (record.getAddress().equals(ip4) && ipv4Available) {
newlyAvailable.add(record);
- LOGGER.debug("enabling IPv4 address " +
record.getAddress());
}
- if (record.getAddress() == ip6 && ipv6Available) {
+ if (record.getAddress().equals(ip6) && ipv6Available) {
newlyAvailable.add(record);
- LOGGER.debug("enabling IPv6 address " +
record.getAddress());
}
}
diff --git
a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/router/TrafficRouter.java
b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/router/TrafficRouter.java
index 78bbdd2..34adf34 100644
---
a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/router/TrafficRouter.java
+++
b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/router/TrafficRouter.java
@@ -17,7 +17,6 @@ package
com.comcast.cdn.traffic_control.traffic_router.core.router;
import java.io.IOException;
import java.net.InetAddress;
-import java.net.Inet4Address;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.UnknownHostException;
@@ -812,10 +811,8 @@ public class TrafficRouter {
final DeliveryService ds =
steeringResult.getDeliveryService();
List<Cache> caches = selectCaches(request, ds, track);
- try {
- caches =
editCacheListForIpVersion(InetAddress.getByName(request.getClientIP())
instanceof Inet4Address, caches);
- } catch (UnknownHostException e) {
- LOGGER.debug("Could not parse IP, accepting
cache list as is.");
+ if (caches != null) {
+ caches =
editCacheListForIpVersion(!request.getClientIP().contains(":"), caches);
}
// child Delivery Services can use their query
parameters
final String pathToHash = steeringHash +
ds.extractSignificantQueryParams(request);
@@ -862,7 +859,7 @@ public class TrafficRouter {
* Creates a string to be used in consistent hashing.
*<p>
* This uses simply the request path by default, but will consider any
and all Query Parameters
- * that are in deliveryService's {@link
DeliveryService.consistentHashQueryParams} set as well.
+ * that are in deliveryService's {@link DeliveryService}
consistentHashQueryParam set as well.
* It will also fall back on the request path if the query parameters
are not UTF-8-encoded.
*</p>
* @param deliveryService The {@link DeliveryService} being requested
@@ -949,10 +946,8 @@ public class TrafficRouter {
routeResult.setDeliveryService(deliveryService);
List<Cache> caches = selectCaches(request, deliveryService,
track);
- try {
- caches =
editCacheListForIpVersion(InetAddress.getByName(request.getClientIP())
instanceof Inet4Address, caches);
- } catch (UnknownHostException e) {
- LOGGER.debug("Could not parse IP, accepting cache list
as is.");
+ if (caches != null) {
+ caches =
editCacheListForIpVersion(!request.getClientIP().contains(":"), caches);
}
if (caches == null || caches.isEmpty()) {
@@ -1491,8 +1486,6 @@ public class TrafficRouter {
* the caches that will considered
* @param ds
* the delivery service for the request
- * @param request
- * the request to consider for cache selection
* @return the selected cache or null if none can be found
*/
private List<Cache> selectCaches(final CacheLocation location, final
DeliveryService ds) {