resolved conflicts for merge of 40717996 to master

Change-Id: Ie5c0f1f20c313d6c568b3b06f778f75223914ada
This commit is contained in:
Robert Greenwalt
2011-06-24 16:10:06 -07:00

View File

@@ -278,6 +278,9 @@ public class ConnectivityService extends IConnectivityManager.Stub {
} }
RadioAttributes[] mRadioAttributes; RadioAttributes[] mRadioAttributes;
// the set of network types that can only be enabled by system/sig apps
List mProtectedNetworks;
public ConnectivityService( public ConnectivityService(
Context context, INetworkManagementService netd, INetworkPolicyManager policyManager) { Context context, INetworkManagementService netd, INetworkPolicyManager policyManager) {
if (DBG) log("ConnectivityService starting up"); if (DBG) log("ConnectivityService starting up");
@@ -381,6 +384,17 @@ public class ConnectivityService extends IConnectivityManager.Stub {
} }
} }
mProtectedNetworks = new ArrayList<Integer>();
int[] protectedNetworks = context.getResources().getIntArray(
com.android.internal.R.array.config_protectedNetworks);
for (int p : protectedNetworks) {
if ((mNetConfigs[p] != null) && (mProtectedNetworks.contains(p) == false)) {
mProtectedNetworks.add(p);
} else {
if (DBG) loge("Ignoring protectedNetwork " + p);
}
}
// high priority first // high priority first
mPriorityList = new int[mNetworksDefined]; mPriorityList = new int[mNetworksDefined];
{ {
@@ -802,6 +816,11 @@ public class ConnectivityService extends IConnectivityManager.Stub {
usedNetworkType = networkType; usedNetworkType = networkType;
} }
} }
if (mProtectedNetworks.contains(usedNetworkType)) {
enforceConnectivityInternalPermission();
}
NetworkStateTracker network = mNetTrackers[usedNetworkType]; NetworkStateTracker network = mNetTrackers[usedNetworkType];
if (network != null) { if (network != null) {
Integer currentPid = new Integer(getCallingPid()); Integer currentPid = new Integer(getCallingPid());
@@ -1012,6 +1031,10 @@ public class ConnectivityService extends IConnectivityManager.Stub {
*/ */
public boolean requestRouteToHostAddress(int networkType, byte[] hostAddress) { public boolean requestRouteToHostAddress(int networkType, byte[] hostAddress) {
enforceChangePermission(); enforceChangePermission();
if (mProtectedNetworks.contains(networkType)) {
enforceConnectivityInternalPermission();
}
if (!ConnectivityManager.isNetworkTypeValid(networkType)) { if (!ConnectivityManager.isNetworkTypeValid(networkType)) {
return false; return false;
} }
@@ -1129,7 +1152,8 @@ public class ConnectivityService extends IConnectivityManager.Stub {
} }
public void setDataDependency(int networkType, boolean met) { public void setDataDependency(int networkType, boolean met) {
enforceChangePermission(); enforceConnectivityInternalPermission();
if (DBG) { if (DBG) {
log("setDataDependency(" + networkType + ", " + met + ")"); log("setDataDependency(" + networkType + ", " + met + ")");
} }