summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
authorChad Brubaker <cbrubaker@google.com>2014-02-14 13:22:34 -0800
committerChad Brubaker <cbrubaker@google.com>2014-02-19 11:04:49 -0800
commitf81daa986e3a2d75c6f2398a59b965790484e0a2 (patch)
treec89ae42e5c952109b113bb76d8309e0c8ebe767f /core/java
parent66d792b6631a8dfd0dd0b7abc75077760fa083cc (diff)
downloadframeworks_base-f81daa986e3a2d75c6f2398a59b965790484e0a2.zip
frameworks_base-f81daa986e3a2d75c6f2398a59b965790484e0a2.tar.gz
frameworks_base-f81daa986e3a2d75c6f2398a59b965790484e0a2.tar.bz2
Add the calling package name to requestRouteToHost
The calling package name will be used to check if an application is a system application when deciding if a route should be exempt from VPN routing rules. Bug: 12937545 Change-Id: I2c09c875fe9bb9685871a0a801ddcbb32fc17405
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/app/ContextImpl.java7
-rw-r--r--core/java/android/net/ConnectivityManager.java7
-rw-r--r--core/java/android/net/IConnectivityManager.aidl4
3 files changed, 11 insertions, 7 deletions
diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java
index 8d127c6..e879be3 100644
--- a/core/java/android/app/ContextImpl.java
+++ b/core/java/android/app/ContextImpl.java
@@ -356,10 +356,11 @@ class ContextImpl extends Context {
ctx.mMainThread.getHandler());
}});
- registerService(CONNECTIVITY_SERVICE, new StaticServiceFetcher() {
- public Object createStaticService() {
+ registerService(CONNECTIVITY_SERVICE, new ServiceFetcher() {
+ public Object createService(ContextImpl ctx) {
IBinder b = ServiceManager.getService(CONNECTIVITY_SERVICE);
- return new ConnectivityManager(IConnectivityManager.Stub.asInterface(b));
+ return new ConnectivityManager(IConnectivityManager.Stub.asInterface(b),
+ ctx.getPackageName());
}});
registerService(COUNTRY_DETECTOR, new StaticServiceFetcher() {
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java
index 3a35cb9..e6b9d4c 100644
--- a/core/java/android/net/ConnectivityManager.java
+++ b/core/java/android/net/ConnectivityManager.java
@@ -400,6 +400,8 @@ public class ConnectivityManager {
private final IConnectivityManager mService;
+ private final String mPackageName;
+
/**
* Tests if a given integer represents a valid network type.
* @param networkType the type to be tested
@@ -811,7 +813,7 @@ public class ConnectivityManager {
public boolean requestRouteToHostAddress(int networkType, InetAddress hostAddress) {
byte[] address = hostAddress.getAddress();
try {
- return mService.requestRouteToHostAddress(networkType, address);
+ return mService.requestRouteToHostAddress(networkType, address, mPackageName);
} catch (RemoteException e) {
return false;
}
@@ -907,8 +909,9 @@ public class ConnectivityManager {
/**
* {@hide}
*/
- public ConnectivityManager(IConnectivityManager service) {
+ public ConnectivityManager(IConnectivityManager service, String packageName) {
mService = checkNotNull(service, "missing IConnectivityManager");
+ mPackageName = checkNotNull(packageName, "missing package name");
}
/** {@hide} */
diff --git a/core/java/android/net/IConnectivityManager.aidl b/core/java/android/net/IConnectivityManager.aidl
index b3217eb..381a817 100644
--- a/core/java/android/net/IConnectivityManager.aidl
+++ b/core/java/android/net/IConnectivityManager.aidl
@@ -71,9 +71,9 @@ interface IConnectivityManager
int stopUsingNetworkFeature(int networkType, in String feature);
- boolean requestRouteToHost(int networkType, int hostAddress);
+ boolean requestRouteToHost(int networkType, int hostAddress, String packageName);
- boolean requestRouteToHostAddress(int networkType, in byte[] hostAddress);
+ boolean requestRouteToHostAddress(int networkType, in byte[] hostAddress, String packageName);
boolean getMobileDataEnabled();
void setMobileDataEnabled(boolean enabled);