Report Network status to NetworkAgent.
Currently just valid/invalid based on NetworkMonitor findings.
Changed NetworkMonitor to start out in default state since starting in Offline causes
a spurious invalid report at creation time.
Added some logging.
bug:17395269
Change-Id: I9ae650b561834d8f8979033744d97df852e76df9
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index 55d8c09..c2d92f3 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -1935,6 +1935,11 @@
rematchNetworkAndRequests(nai);
}
updateInetCondition(nai, valid);
+ // Let the NetworkAgent know the state of its network
+ nai.asyncChannel.sendMessage(
+ android.net.NetworkAgent.CMD_REPORT_NETWORK_STATUS,
+ (valid ? NetworkAgent.VALID_NETWORK : NetworkAgent.INVALID_NETWORK),
+ 0, null);
}
break;
}
@@ -2517,6 +2522,7 @@
nai = mNetworkForNetId.get(network.netId);
}
if (nai == null) return;
+ if (DBG) log("reportBadNetwork(" + nai.name() + ") by " + uid);
synchronized (nai) {
if (isNetworkBlocked(nai, uid)) return;
diff --git a/services/core/java/com/android/server/connectivity/NetworkMonitor.java b/services/core/java/com/android/server/connectivity/NetworkMonitor.java
index 9e33205..fab064c 100644
--- a/services/core/java/com/android/server/connectivity/NetworkMonitor.java
+++ b/services/core/java/com/android/server/connectivity/NetworkMonitor.java
@@ -260,7 +260,7 @@
addState(mUserPromptedState, mDefaultState);
addState(mCaptivePortalState, mDefaultState);
addState(mLingeringState, mDefaultState);
- setInitialState(mOfflineState);
+ setInitialState(mDefaultState);
mServer = Settings.Global.getString(mContext.getContentResolver(),
Settings.Global.CAPTIVE_PORTAL_SERVER);