summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiao Ma <xiaom@google.com>2022-03-24 06:53:39 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-03-24 06:53:39 +0000
commit5054701c516c2fcae1c0e1f105b5033d942bc0ce (patch)
tree96c427154dc269613ab46437e343a5976be99037
parent7e3edf81080ead79208359fba6663fd46533b4c1 (diff)
parentb554c7f34a692f8ea262bfa1760ba0bc629a4a00 (diff)
downloadethernet-5054701c516c2fcae1c0e1f105b5033d942bc0ce.tar.gz
Add getInterfaceList API implementation in Ethernet service. am: 260521db42 am: b554c7f34a
Original change: https://android-review.googlesource.com/c/platform/frameworks/opt/net/ethernet/+/2029725 Change-Id: I7cb7ee51f75f84a969eb8b9fb09755de544ce685
-rw-r--r--java/com/android/server/ethernet/EthernetServiceImpl.java7
-rw-r--r--java/com/android/server/ethernet/EthernetTracker.java19
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.