summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2016-07-06 13:09:41 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2016-07-06 13:09:42 +0000
commit58ef88927d5e28318920a135bba8edf5409115fe (patch)
tree2e95986b9adbace54bd1591c18b321faabb63e60
parent0a4315194df1b42818a9f43bd5145813bf59a1d9 (diff)
parent4e37b7044018153bf294a0e9e834681c46c050d7 (diff)
Merge "[net mgmt svc] add method to retrieve INetd reference" into nyc-mr1-dev
-rw-r--r--Android.mk3
-rw-r--r--core/java/android/os/INetworkManagementService.aidl8
-rw-r--r--services/core/java/com/android/server/NetworkManagementService.java11
3 files changed, 21 insertions, 1 deletions
diff --git a/Android.mk b/Android.mk
index 0b33301ce5ac..5766e46658c3 100644
--- a/Android.mk
+++ b/Android.mk
@@ -468,6 +468,9 @@ LOCAL_SRC_FILES += \
../../system/update_engine/binder_bindings/android/os/IUpdateEngine.aidl \
../../system/update_engine/binder_bindings/android/os/IUpdateEngineCallback.aidl \
+LOCAL_SRC_FILES += \
+ ../../system/netd/server/binder/android/net/INetd.aidl \
+
LOCAL_AIDL_INCLUDES += system/update_engine/binder_bindings
# FRAMEWORKS_BASE_JAVA_SRC_DIRS comes from build/core/pathmap.mk
diff --git a/core/java/android/os/INetworkManagementService.aidl b/core/java/android/os/INetworkManagementService.aidl
index 36ba6966effa..efdb4b5d8c61 100644
--- a/core/java/android/os/INetworkManagementService.aidl
+++ b/core/java/android/os/INetworkManagementService.aidl
@@ -18,6 +18,7 @@
package android.os;
import android.net.InterfaceConfiguration;
+import android.net.INetd;
import android.net.INetworkManagementEventObserver;
import android.net.Network;
import android.net.NetworkStats;
@@ -36,7 +37,7 @@ interface INetworkManagementService
**/
/**
- * Register an observer to receive events
+ * Register an observer to receive events.
*/
void registerObserver(INetworkManagementEventObserver obs);
@@ -46,6 +47,11 @@ interface INetworkManagementService
void unregisterObserver(INetworkManagementEventObserver obs);
/**
+ * Retrieve an INetd to talk to netd.
+ */
+ INetd getNetdService();
+
+ /**
* Returns a list of currently known network interfaces
*/
String[] listInterfaces();
diff --git a/services/core/java/com/android/server/NetworkManagementService.java b/services/core/java/com/android/server/NetworkManagementService.java
index f2368779336d..be9d836ebca4 100644
--- a/services/core/java/com/android/server/NetworkManagementService.java
+++ b/services/core/java/com/android/server/NetworkManagementService.java
@@ -971,6 +971,17 @@ public class NetworkManagementService extends INetworkManagementService.Stub
//
// INetworkManagementService members
//
+ @Override
+ public INetd getNetdService() throws RemoteException {
+ final CountDownLatch connectedSignal = mConnectedSignal;
+ if (connectedSignal != null) {
+ try {
+ connectedSignal.await();
+ } catch (InterruptedException ignored) {}
+ }
+
+ return mNetdService;
+ }
@Override
public String[] listInterfaces() {