diff options
author | Xiao Ma <xiaom@google.com> | 2022-03-18 13:10:49 +0900 |
---|---|---|
committer | Mark Chien <markchien@google.com> | 2022-03-18 08:32:40 +0000 |
commit | 613c01dacc967f3a65c33880d0fa70e0c334cea5 (patch) | |
tree | 0d1aa87a5045ba0e96102d25bf63a567502d25a1 | |
parent | 8a4c9c356459f55a854c55fc09ac9e0ec9c0bb58 (diff) | |
download | ethernet-613c01dacc967f3a65c33880d0fa70e0c334cea5.tar.gz |
Add getInterfaceList API implementation in Ethernet service.
Bug: 171872016
Test: m
Change-Id: I8eeb2cd211c6a2ec6bc997c5e18995b585c6118a
-rw-r--r-- | java/com/android/server/ethernet/EthernetServiceImpl.java | 7 | ||||
-rw-r--r-- | java/com/android/server/ethernet/EthernetTracker.java | 20 |
2 files changed, 26 insertions, 1 deletions
diff --git a/java/com/android/server/ethernet/EthernetServiceImpl.java b/java/com/android/server/ethernet/EthernetServiceImpl.java index afed01a..5e830ad 100644 --- a/java/com/android/server/ethernet/EthernetServiceImpl.java +++ b/java/com/android/server/ethernet/EthernetServiceImpl.java @@ -41,6 +41,7 @@ import com.android.net.module.util.PermissionUtils; import java.io.FileDescriptor; import java.io.PrintWriter; +import java.util.List; import java.util.Objects; import java.util.concurrent.atomic.AtomicBoolean; @@ -289,4 +290,10 @@ public class EthernetServiceImpl extends IEthernetManager.Stub { mTracker.setEthernetEnabled(enabled); } + + @Override + public List<String> getInterfaceList() { + PermissionUtils.enforceAccessNetworkStatePermission(mContext, TAG); + return mTracker.getInterfaceList(); + } } diff --git a/java/com/android/server/ethernet/EthernetTracker.java b/java/com/android/server/ethernet/EthernetTracker.java index c38c900..abb1635 100644 --- a/java/com/android/server/ethernet/EthernetTracker.java +++ b/java/com/android/server/ethernet/EthernetTracker.java @@ -57,6 +57,7 @@ import com.android.net.module.util.PermissionUtils; import java.io.FileDescriptor; import java.net.InetAddress; import java.util.ArrayList; +import java.util.List; import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; @@ -90,7 +91,8 @@ public class EthernetTracker { * Interface names we track. This is a product-dependent regular expression, plus, * if setIncludeTestInterfaces is true, any test interfaces. */ - private String mIfaceMatch; + private volatile String mIfaceMatch; + /** * Track test interfaces if true, don't track otherwise. */ @@ -341,6 +343,22 @@ public class EthernetTracker { return mFactory.getAvailableInterfaces(includeRestricted); } + List<String> getInterfaceList() { + final List<String> interfaceList = new ArrayList<String>(); + final String[] ifaces; + try { + ifaces = mNetd.interfaceGetList(); + } catch (RemoteException e) { + Log.e(TAG, "Could not get list of interfaces " + e); + return interfaceList; + } + final String ifaceMatch = mIfaceMatch; + for (String iface : ifaces) { + if (iface.matches(ifaceMatch)) interfaceList.add(iface); + } + return interfaceList; + } + /** * Returns true if given interface was configured as restricted (doesn't have * NET_CAPABILITY_NOT_RESTRICTED) capability. Otherwise, returns false. |