Loading core/java/android/os/INetworkManagementService.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -442,6 +442,7 @@ interface INetworkManagementService void addInterfaceToLocalNetwork(String iface, in List<RouteInfo> routes); void removeInterfaceFromLocalNetwork(String iface); int removeRoutesFromLocalNetwork(in List<RouteInfo> routes); void setAllowOnlyVpnForUids(boolean enable, in UidRange[] uidRanges); } services/core/java/com/android/server/NetworkManagementService.java +15 −0 Original line number Diff line number Diff line Loading @@ -2774,4 +2774,19 @@ public class NetworkManagementService extends INetworkManagementService.Stub public void removeInterfaceFromLocalNetwork(String iface) { modifyInterfaceInNetwork("remove", "local", iface); } @Override public int removeRoutesFromLocalNetwork(List<RouteInfo> routes) { int failures = 0; for (RouteInfo route : routes) { try { modifyRoute("remove", "local", route); } catch (IllegalStateException e) { failures++; } } return failures; } } services/core/java/com/android/server/connectivity/tethering/IPv6TetheringInterfaceServices.java +11 −2 Original line number Diff line number Diff line Loading @@ -157,8 +157,17 @@ class IPv6TetheringInterfaceServices { } } else { if (mLastLocalRoutes != null && !mLastLocalRoutes.isEmpty()) { // TODO: Remove only locally added network routes. // mNMSwervice.removeInterfaceFromLocalNetwork(mIfName); try { final int removalFailures = mNMService.removeRoutesFromLocalNetwork(mLastLocalRoutes); if (removalFailures > 0) { Log.e(TAG, String.format("Failed to remove %d IPv6 routes from local table.", removalFailures)); } } catch (RemoteException e) { Log.e(TAG, "Failed to remove IPv6 routes from local table: ", e); } } } Loading Loading
core/java/android/os/INetworkManagementService.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -442,6 +442,7 @@ interface INetworkManagementService void addInterfaceToLocalNetwork(String iface, in List<RouteInfo> routes); void removeInterfaceFromLocalNetwork(String iface); int removeRoutesFromLocalNetwork(in List<RouteInfo> routes); void setAllowOnlyVpnForUids(boolean enable, in UidRange[] uidRanges); }
services/core/java/com/android/server/NetworkManagementService.java +15 −0 Original line number Diff line number Diff line Loading @@ -2774,4 +2774,19 @@ public class NetworkManagementService extends INetworkManagementService.Stub public void removeInterfaceFromLocalNetwork(String iface) { modifyInterfaceInNetwork("remove", "local", iface); } @Override public int removeRoutesFromLocalNetwork(List<RouteInfo> routes) { int failures = 0; for (RouteInfo route : routes) { try { modifyRoute("remove", "local", route); } catch (IllegalStateException e) { failures++; } } return failures; } }
services/core/java/com/android/server/connectivity/tethering/IPv6TetheringInterfaceServices.java +11 −2 Original line number Diff line number Diff line Loading @@ -157,8 +157,17 @@ class IPv6TetheringInterfaceServices { } } else { if (mLastLocalRoutes != null && !mLastLocalRoutes.isEmpty()) { // TODO: Remove only locally added network routes. // mNMSwervice.removeInterfaceFromLocalNetwork(mIfName); try { final int removalFailures = mNMService.removeRoutesFromLocalNetwork(mLastLocalRoutes); if (removalFailures > 0) { Log.e(TAG, String.format("Failed to remove %d IPv6 routes from local table.", removalFailures)); } } catch (RemoteException e) { Log.e(TAG, "Failed to remove IPv6 routes from local table: ", e); } } } Loading