am decfd707: Merge "Add the calling package name to requestRouteToHost" into klp-dev

* commit 'decfd7079b622f9135aeb8f7b2ec48005c844c38':
  Add the calling package name to requestRouteToHost
This commit is contained in:
Chad Brubaker
2014-03-11 19:22:39 +00:00
committed by Android Git Automerger
4 changed files with 16 additions and 11 deletions

View File

@ -356,10 +356,11 @@ class ContextImpl extends Context {
ctx.mMainThread.getHandler()); ctx.mMainThread.getHandler());
}}); }});
registerService(CONNECTIVITY_SERVICE, new StaticServiceFetcher() { registerService(CONNECTIVITY_SERVICE, new ServiceFetcher() {
public Object createStaticService() { public Object createService(ContextImpl ctx) {
IBinder b = ServiceManager.getService(CONNECTIVITY_SERVICE); 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() { registerService(COUNTRY_DETECTOR, new StaticServiceFetcher() {

View File

@ -395,6 +395,8 @@ public class ConnectivityManager {
private final IConnectivityManager mService; private final IConnectivityManager mService;
private final String mPackageName;
/** /**
* Tests if a given integer represents a valid network type. * Tests if a given integer represents a valid network type.
* @param networkType the type to be tested * @param networkType the type to be tested
@ -802,7 +804,7 @@ public class ConnectivityManager {
public boolean requestRouteToHostAddress(int networkType, InetAddress hostAddress) { public boolean requestRouteToHostAddress(int networkType, InetAddress hostAddress) {
byte[] address = hostAddress.getAddress(); byte[] address = hostAddress.getAddress();
try { try {
return mService.requestRouteToHostAddress(networkType, address); return mService.requestRouteToHostAddress(networkType, address, mPackageName);
} catch (RemoteException e) { } catch (RemoteException e) {
return false; return false;
} }
@ -898,8 +900,9 @@ public class ConnectivityManager {
/** /**
* {@hide} * {@hide}
*/ */
public ConnectivityManager(IConnectivityManager service) { public ConnectivityManager(IConnectivityManager service, String packageName) {
mService = checkNotNull(service, "missing IConnectivityManager"); mService = checkNotNull(service, "missing IConnectivityManager");
mPackageName = checkNotNull(packageName, "missing package name");
} }
/** {@hide} */ /** {@hide} */

View File

@ -71,9 +71,9 @@ interface IConnectivityManager
int stopUsingNetworkFeature(int networkType, in String feature); 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(); boolean getMobileDataEnabled();
void setMobileDataEnabled(boolean enabled); void setMobileDataEnabled(boolean enabled);

View File

@ -1537,14 +1537,14 @@ public class ConnectivityService extends IConnectivityManager.Stub {
* desired * desired
* @return {@code true} on success, {@code false} on failure * @return {@code true} on success, {@code false} on failure
*/ */
public boolean requestRouteToHost(int networkType, int hostAddress) { public boolean requestRouteToHost(int networkType, int hostAddress, String packageName) {
InetAddress inetAddress = NetworkUtils.intToInetAddress(hostAddress); InetAddress inetAddress = NetworkUtils.intToInetAddress(hostAddress);
if (inetAddress == null) { if (inetAddress == null) {
return false; return false;
} }
return requestRouteToHostAddress(networkType, inetAddress.getAddress()); return requestRouteToHostAddress(networkType, inetAddress.getAddress(), packageName);
} }
/** /**
@ -1556,7 +1556,8 @@ public class ConnectivityService extends IConnectivityManager.Stub {
* desired * desired
* @return {@code true} on success, {@code false} on failure * @return {@code true} on success, {@code false} on failure
*/ */
public boolean requestRouteToHostAddress(int networkType, byte[] hostAddress) { public boolean requestRouteToHostAddress(int networkType, byte[] hostAddress,
String packageName) {
enforceChangePermission(); enforceChangePermission();
if (mProtectedNetworks.contains(networkType)) { if (mProtectedNetworks.contains(networkType)) {
enforceConnectivityInternalPermission(); enforceConnectivityInternalPermission();
@ -4351,7 +4352,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
// Make a route to host so we check the specific interface. // Make a route to host so we check the specific interface.
if (mCs.requestRouteToHostAddress(ConnectivityManager.TYPE_MOBILE_HIPRI, if (mCs.requestRouteToHostAddress(ConnectivityManager.TYPE_MOBILE_HIPRI,
hostAddr.getAddress())) { hostAddr.getAddress(), null)) {
// Wait a short time to be sure the route is established ?? // Wait a short time to be sure the route is established ??
log("isMobileOk:" log("isMobileOk:"
+ " wait to establish route to hostAddr=" + hostAddr); + " wait to establish route to hostAddr=" + hostAddr);