diff options
author | Xiao Ma <xiaom@google.com> | 2022-03-24 06:34:14 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-03-24 06:34:14 +0000 |
commit | b554c7f34a692f8ea262bfa1760ba0bc629a4a00 (patch) | |
tree | 96c427154dc269613ab46437e343a5976be99037 | |
parent | 9d1cc7aa975861a35e4dc6a45b0659ddf4030572 (diff) | |
parent | 260521db426c2d70cf713c122be085919be59df2 (diff) | |
download | ethernet-b554c7f34a692f8ea262bfa1760ba0bc629a4a00.tar.gz |
Add getInterfaceList API implementation in Ethernet service. am: 260521db42
Original change: https://android-review.googlesource.com/c/platform/frameworks/opt/net/ethernet/+/2029725
Change-Id: Id8eba7b7f968c04f233fe8e3629a236aab9e2bc9
-rw-r--r-- | java/com/android/server/ethernet/EthernetServiceImpl.java | 7 | ||||
-rw-r--r-- | java/com/android/server/ethernet/EthernetTracker.java | 19 |
2 files changed, 25 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..c291b3f 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,7 @@ 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 +342,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. |