This is an automated email from the ASF dual-hosted git repository.

rawlin pushed a commit to branch 4.1.x
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git


The following commit(s) were added to refs/heads/4.1.x by this push:
     new 4408a9c  Remove InetAddress.getByName usage since it makes DNS 
requests (#4765) (#4780)
4408a9c is described below

commit 4408a9c8303d68f505e96733cae361401ca49f8e
Author: Rawlin Peters <[email protected]>
AuthorDate: Wed Jun 10 16:22:00 2020 -0600

    Remove InetAddress.getByName usage since it makes DNS requests (#4765) 
(#4780)
    
    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)
    
    (cherry picked from commit c8db585c00afabf1f9845c4c01b94d7ca2109f36)
---
 .../traffic_router/core/cache/Cache.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/cache/Cache.java
 
b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/cache/Cache.java
index 26ae125..2f20fba 100644
--- 
a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/cache/Cache.java
+++ 
b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/cache/Cache.java
@@ -252,24 +252,20 @@ public class Cache implements Comparable<Cache>, 
Hashable<Cache> {
                }
 
                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 c8b7807..c668190 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;
@@ -565,10 +564,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);
@@ -615,7 +612,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
@@ -702,10 +699,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()) {
@@ -1244,8 +1239,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) {

Reply via email to