summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 6c23f89832fc..be32a74a4c44 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 27fb7bdf3209..013e77fc61f5 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 ba44cde95b71..114aa9cb7539 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() {