Merge \\"[net mgmt svc] add method to retrieve INetd reference\\" into nyc-mr1-dev am: 58ef88927d
am: e62b36bb33
Change-Id: Icf35de6a5a0dcc356cce4cf5d183aed647f35cc6
diff --git a/Android.mk b/Android.mk
index 6c23f89..be32a74 100644
--- a/Android.mk
+++ b/Android.mk
@@ -468,6 +468,9 @@
../../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 27fb7bd..013e77f 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 @@
**/
/**
- * Register an observer to receive events
+ * Register an observer to receive events.
*/
void registerObserver(INetworkManagementEventObserver obs);
@@ -46,6 +47,11 @@
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 ba44cde..114aa9c 100644
--- a/services/core/java/com/android/server/NetworkManagementService.java
+++ b/services/core/java/com/android/server/NetworkManagementService.java
@@ -971,6 +971,17 @@
//
// 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() {