From 6f95279de61245daa7166281e5403b7fc6d88788 Mon Sep 17 00:00:00 2001 From: Chiachang Wang Date: Fri, 6 Nov 2020 14:48:30 +0800 Subject: [PATCH] Replace the way to add legacy routing ConnectivityService is going to become a mainline module which is not able to access hidden API. Thus, replace the usage from NMS to INetd. Bug: 170598012 Test: atest FrameworksNetTests ConnectivityManagerLegacyTest Change-Id: Ice1bd1effab26555917bc1766354aeaebd41ad66 --- .../java/com/android/server/ConnectivityService.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 93825ca560..8678a665d0 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -1917,10 +1917,13 @@ public class ConnectivityService extends IConnectivityManager.Stub } if (DBG) log("Adding legacy route " + bestRoute + " for UID/PID " + uid + "/" + Binder.getCallingPid()); + + final String dst = bestRoute.getDestinationLinkAddress().toString(); + final String nextHop = bestRoute.hasGateway() + ? bestRoute.getGateway().getHostAddress() : ""; try { - mNMS.addLegacyRouteForNetId(netId, bestRoute, uid); - } catch (Exception e) { - // never crash - catch them all + mNetd.networkAddLegacyRoute(netId, bestRoute.getInterface(), dst, nextHop , uid); + } catch (RemoteException | ServiceSpecificException e) { if (DBG) loge("Exception trying to add a route: " + e); return false; }