Merge "Import translations. DO NOT MERGE" into klp-dev
diff --git a/api/current.txt b/api/current.txt
index ed0d154..81aec5e 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -14109,7 +14109,7 @@
method public int getUid();
}
- public deprecated class DhcpInfo implements android.os.Parcelable {
+ public class DhcpInfo implements android.os.Parcelable {
ctor public DhcpInfo();
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
@@ -15021,7 +15021,7 @@
method public boolean enableNetwork(int, boolean);
method public java.util.List<android.net.wifi.WifiConfiguration> getConfiguredNetworks();
method public android.net.wifi.WifiInfo getConnectionInfo();
- method public deprecated android.net.DhcpInfo getDhcpInfo();
+ method public android.net.DhcpInfo getDhcpInfo();
method public java.util.List<android.net.wifi.ScanResult> getScanResults();
method public int getWifiState();
method public boolean isScanAlwaysAvailable();
diff --git a/core/java/android/net/DhcpInfo.java b/core/java/android/net/DhcpInfo.java
index ab4cd9b..3bede5d 100644
--- a/core/java/android/net/DhcpInfo.java
+++ b/core/java/android/net/DhcpInfo.java
@@ -22,7 +22,6 @@
/**
* A simple object for retrieving the results of a DHCP request.
- * @deprecated - use LinkProperties - To be removed 11/2014
*/
public class DhcpInfo implements Parcelable {
public int ipAddress;
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index f005f5f..59b559e 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -2794,7 +2794,7 @@
}
mNumDnsEntries = last;
} catch (Exception e) {
- if (DBG) loge("exception setting default dns interface: " + e);
+ loge("exception setting default dns interface: " + e);
}
}
@@ -3779,31 +3779,33 @@
}
}
- public void addUserForwarding(String interfaze, int uid) {
+ public void addUserForwarding(String interfaze, int uid, boolean forwardDns) {
int uidStart = uid * UserHandle.PER_USER_RANGE;
int uidEnd = uidStart + UserHandle.PER_USER_RANGE - 1;
- addUidForwarding(interfaze, uidStart, uidEnd);
+ addUidForwarding(interfaze, uidStart, uidEnd, forwardDns);
}
- public void clearUserForwarding(String interfaze, int uid) {
+ public void clearUserForwarding(String interfaze, int uid, boolean forwardDns) {
int uidStart = uid * UserHandle.PER_USER_RANGE;
int uidEnd = uidStart + UserHandle.PER_USER_RANGE - 1;
- clearUidForwarding(interfaze, uidStart, uidEnd);
+ clearUidForwarding(interfaze, uidStart, uidEnd, forwardDns);
}
- public void addUidForwarding(String interfaze, int uidStart, int uidEnd) {
+ public void addUidForwarding(String interfaze, int uidStart, int uidEnd,
+ boolean forwardDns) {
try {
mNetd.setUidRangeRoute(interfaze,uidStart, uidEnd);
- mNetd.setDnsInterfaceForUidRange(interfaze, uidStart, uidEnd);
+ if (forwardDns) mNetd.setDnsInterfaceForUidRange(interfaze, uidStart, uidEnd);
} catch (RemoteException e) {
}
}
- public void clearUidForwarding(String interfaze, int uidStart, int uidEnd) {
+ public void clearUidForwarding(String interfaze, int uidStart, int uidEnd,
+ boolean forwardDns) {
try {
mNetd.clearUidRangeRoute(interfaze, uidStart, uidEnd);
- mNetd.clearDnsInterfaceForUidRange(uidStart, uidEnd);
+ if (forwardDns) mNetd.clearDnsInterfaceForUidRange(uidStart, uidEnd);
} catch (RemoteException e) {
}
diff --git a/services/java/com/android/server/am/BroadcastQueue.java b/services/java/com/android/server/am/BroadcastQueue.java
index b2e3ce7..1d6970f 100644
--- a/services/java/com/android/server/am/BroadcastQueue.java
+++ b/services/java/com/android/server/am/BroadcastQueue.java
@@ -470,6 +470,12 @@
r.callingPid, r.resolvedType, filter.receiverList.uid);
}
+ if (filter.receiverList.app == null || filter.receiverList.app.crashing) {
+ Slog.w(TAG, "Skipping deliver [" + mQueueName + "] " + r
+ + " to " + filter.receiverList + ": process crashing");
+ skip = true;
+ }
+
if (!skip) {
// If this is not being sent as an ordered broadcast, then we
// don't want to touch the fields that keep track of the current
@@ -565,8 +571,8 @@
boolean isDead;
synchronized (mService.mPidsSelfLocked) {
- isDead = (mService.mPidsSelfLocked.get(
- mPendingBroadcast.curApp.pid) == null);
+ ProcessRecord proc = mService.mPidsSelfLocked.get(mPendingBroadcast.curApp.pid);
+ isDead = proc == null || proc.crashing;
}
if (!isDead) {
// It's still alive, so keep waiting
@@ -650,7 +656,7 @@
new Intent(r.intent), r.resultCode,
r.resultData, r.resultExtras, false, false, r.userId);
// Set this to null so that the reference
- // (local and remote) isnt kept in the mBroadcastHistory.
+ // (local and remote) isn't kept in the mBroadcastHistory.
r.resultTo = null;
} catch (RemoteException e) {
Slog.w(TAG, "Failure ["
@@ -803,10 +809,8 @@
}
if (r.curApp != null && r.curApp.crashing) {
// If the target process is crashing, just skip it.
- if (DEBUG_BROADCAST) Slog.v(TAG,
- "Skipping deliver ordered ["
- + mQueueName + "] " + r + " to " + r.curApp
- + ": process crashing");
+ Slog.w(TAG, "Skipping deliver ordered [" + mQueueName + "] " + r
+ + " to " + r.curApp + ": process crashing");
skip = true;
}
diff --git a/services/java/com/android/server/am/ProcessRecord.java b/services/java/com/android/server/am/ProcessRecord.java
index 4b62e7d..486e916 100644
--- a/services/java/com/android/server/am/ProcessRecord.java
+++ b/services/java/com/android/server/am/ProcessRecord.java
@@ -98,7 +98,7 @@
boolean bad; // True if disabled in the bad process list
boolean killedByAm; // True when proc has been killed by activity manager, not for RAM
boolean procStateChanged; // Keep track of whether we changed 'setAdj'.
- String waitingToKill; // Process is waiting to be killed when in the bg; reason
+ String waitingToKill; // Process is waiting to be killed when in the bg, and reason
IBinder forcingToForeground;// Token that is forcing this process to be foreground
int adjSeq; // Sequence id for identifying oom_adj assignment cycles
int lruSeq; // Sequence id for identifying LRU update cycles
diff --git a/services/java/com/android/server/connectivity/Vpn.java b/services/java/com/android/server/connectivity/Vpn.java
index 45797b2..f5a7039 100644
--- a/services/java/com/android/server/connectivity/Vpn.java
+++ b/services/java/com/android/server/connectivity/Vpn.java
@@ -242,9 +242,11 @@
try {
mCallback.restore();
final int size = mVpnUsers.size();
+ final boolean forwardDns = (mConfig.dnsServers != null &&
+ mConfig.dnsServers.size() != 0);
for (int i = 0; i < size; i++) {
int user = mVpnUsers.keyAt(i);
- mCallback.clearUserForwarding(mInterface, user);
+ mCallback.clearUserForwarding(mInterface, user, forwardDns);
hideNotification(user);
}
@@ -443,8 +445,12 @@
if (!isRunningLocked()) {
throw new IllegalStateException("VPN is not active");
}
+
+ final boolean forwardDns = (mConfig.dnsServers != null &&
+ mConfig.dnsServers.size() != 0);
+
// add the user
- mCallback.addUserForwarding(mInterface, user);
+ mCallback.addUserForwarding(mInterface, user, forwardDns);
mVpnUsers.put(user, true);
// show the notification
@@ -484,7 +490,9 @@
if (!isRunningLocked()) {
throw new IllegalStateException("VPN is not active");
}
- mCallback.clearUserForwarding(mInterface, user);
+ final boolean forwardDns = (mConfig.dnsServers != null &&
+ mConfig.dnsServers.size() != 0);
+ mCallback.clearUserForwarding(mInterface, user, forwardDns);
mVpnUsers.delete(user);
hideNotification(user);
}
@@ -553,9 +561,11 @@
final long token = Binder.clearCallingIdentity();
try {
final int size = mVpnUsers.size();
+ final boolean forwardDns = (mConfig.dnsServers != null &&
+ mConfig.dnsServers.size() != 0);
for (int i = 0; i < size; i++) {
int user = mVpnUsers.keyAt(i);
- mCallback.clearUserForwarding(mInterface, user);
+ mCallback.clearUserForwarding(mInterface, user, forwardDns);
hideNotification(user);
}
mVpnUsers = null;
diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java
index b7594ee1..7fc8bef 100644
--- a/wifi/java/android/net/wifi/WifiManager.java
+++ b/wifi/java/android/net/wifi/WifiManager.java
@@ -988,7 +988,6 @@
* Return the DHCP-assigned addresses from the last successful DHCP request,
* if any.
* @return the DHCP information
- * @deprecated - use ConnectivityManager.getLinkProperties instead. TODO - remove 11/2013
*/
public DhcpInfo getDhcpInfo() {
try {