From c6cb931f32e6b953c368159484ded548819b4a80 Mon Sep 17 00:00:00 2001 From: Aaron Huang Date: Thu, 18 Mar 2021 21:35:45 +0800 Subject: [PATCH] Fix IpConfigStore dependencies on framework-connectivity This change fixes IpConfigStore dependencies on framework-connectivity hidden APIs. - Use the version of SystemApi to new RouteInfo. - Inline the implementation of isIPv4Default() directly because isDefaultRoute() is a public API so it can be used in this class. (cherry-picked from ag/13945685) Bug: 178777253 Test: FrameworksServicesTests:IpConfigStoreTest Merged-In: I5ed1bc8bc8bee5b0c795fd8577a2d64628998e51 Change-Id: I5ed1bc8bc8bee5b0c795fd8577a2d64628998e51 --- .../java/com/android/server/net/IpConfigStore.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/net/IpConfigStore.java b/services/core/java/com/android/server/net/IpConfigStore.java index 512d2192b9..df1eb6d9fe 100644 --- a/services/core/java/com/android/server/net/IpConfigStore.java +++ b/services/core/java/com/android/server/net/IpConfigStore.java @@ -22,7 +22,6 @@ import android.net.IpConfiguration.IpAssignment; import android.net.IpConfiguration.ProxySettings; import android.net.LinkAddress; import android.net.ProxyInfo; -import android.net.RouteInfo; import android.net.StaticIpConfiguration; import android.net.Uri; import android.util.ArrayMap; @@ -322,11 +321,14 @@ public class IpConfigStore { if (in.readInt() == 1) { gateway = InetAddresses.parseNumericAddress(in.readUTF()); } - RouteInfo route = new RouteInfo(dest, gateway); - if (route.isIPv4Default() && gatewayAddress == null) { + // If the destination is a default IPv4 route, use the gateway + // address unless already set. + if (dest.getAddress() instanceof Inet4Address + && dest.getPrefixLength() == 0 && gatewayAddress == null) { gatewayAddress = gateway; } else { - loge("Non-IPv4 default or duplicate route: " + route); + loge("Non-IPv4 default or duplicate route: " + + dest.getAddress()); } } } else if (key.equals(DNS_KEY)) {