summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Jensen <pauljensen@google.com>2015-07-01 12:43:13 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-07-01 12:43:15 +0000
commit72a77993bdbc2cec49714b73d222ff213be44041 (patch)
treebda0acaad3252bbf11e47cfb2774606824a5394e
parent35daa43e5d5b3b614b837f57a06c8b7c7d87cb55 (diff)
parent2f0a8974d1f45aad590829042df8cff07e989635 (diff)
downloadframeworks_base-72a77993bdbc2cec49714b73d222ff213be44041.zip
frameworks_base-72a77993bdbc2cec49714b73d222ff213be44041.tar.gz
frameworks_base-72a77993bdbc2cec49714b73d222ff213be44041.tar.bz2
Merge "Log DNS results for network validation attempts" into mnc-dev
-rw-r--r--services/core/java/com/android/server/connectivity/NetworkMonitor.java30
1 files changed, 24 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/connectivity/NetworkMonitor.java b/services/core/java/com/android/server/connectivity/NetworkMonitor.java
index 8b661e3..e472928 100644
--- a/services/core/java/com/android/server/connectivity/NetworkMonitor.java
+++ b/services/core/java/com/android/server/connectivity/NetworkMonitor.java
@@ -47,6 +47,7 @@ import android.telephony.CellInfoGsm;
import android.telephony.CellInfoLte;
import android.telephony.CellInfoWcdma;
import android.telephony.TelephonyManager;
+import android.text.TextUtils;
import android.util.LocalLog;
import android.util.LocalLog.ReadOnlyLocalLog;
import android.util.Log;
@@ -59,6 +60,7 @@ import com.android.server.connectivity.NetworkAgentInfo;
import java.io.IOException;
import java.net.HttpURLConnection;
+import java.net.InetAddress;
import java.net.URL;
import java.util.List;
import java.util.Random;
@@ -643,15 +645,31 @@ public class NetworkMonitor extends StateMachine {
// fact block fetching of the generate_204 URL which would lead to false negative
// results for network validation.
boolean fetchPac = false;
- {
- final ProxyInfo proxyInfo = mNetworkAgentInfo.linkProperties.getHttpProxy();
- if (proxyInfo != null && !Uri.EMPTY.equals(proxyInfo.getPacFileUrl())) {
- url = new URL(proxyInfo.getPacFileUrl().toString());
- fetchPac = true;
+ final ProxyInfo proxyInfo = mNetworkAgentInfo.linkProperties.getHttpProxy();
+ if (proxyInfo != null && !Uri.EMPTY.equals(proxyInfo.getPacFileUrl())) {
+ url = new URL(proxyInfo.getPacFileUrl().toString());
+ fetchPac = true;
+ }
+ final StringBuffer connectInfo = new StringBuffer();
+ String hostToResolve = null;
+ // Only resolve a host if HttpURLConnection is about to, to avoid any potentially
+ // unnecessary resolution.
+ if (proxyInfo == null || fetchPac) {
+ hostToResolve = url.getHost();
+ } else if (proxyInfo != null) {
+ hostToResolve = proxyInfo.getHost();
+ }
+ if (!TextUtils.isEmpty(hostToResolve)) {
+ connectInfo.append(", " + hostToResolve + "=");
+ final InetAddress[] addresses =
+ mNetworkAgentInfo.network.getAllByName(hostToResolve);
+ for (InetAddress address : addresses) {
+ connectInfo.append(address.getHostAddress());
+ if (address != addresses[addresses.length-1]) connectInfo.append(",");
}
}
validationLog("Checking " + url.toString() + " on " +
- mNetworkAgentInfo.networkInfo.getExtraInfo());
+ mNetworkAgentInfo.networkInfo.getExtraInfo() + connectInfo);
urlConnection = (HttpURLConnection) mNetworkAgentInfo.network.openConnection(url);
urlConnection.setInstanceFollowRedirects(fetchPac);
urlConnection.setConnectTimeout(SOCKET_TIMEOUT_MS);