summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Greenwalt <rgreenwalt@google.com>2014-09-10 10:06:32 -0700
committerRobert Greenwalt <rgreenwalt@google.com>2014-09-10 10:06:32 -0700
commite3cbf2e7349dd366f33905784595e2e3a1cec245 (patch)
tree32020aad53fb7de40df74baba44a4ce1749993bd
parent69b9c6a7d6453c1c76857c5edfeb1d89a1315674 (diff)
downloadandroid_frameworks_opt_net_ethernet-e3cbf2e7349dd366f33905784595e2e3a1cec245.tar.gz
android_frameworks_opt_net_ethernet-e3cbf2e7349dd366f33905784595e2e3a1cec245.tar.bz2
android_frameworks_opt_net_ethernet-e3cbf2e7349dd366f33905784595e2e3a1cec245.zip
Don't accept score below 0.
Network Factories are allowed to go below, but networks need to be constrained. Allowing the network to go below 0 meant that -1 could sometimes leak through and foul the logic. bug:17361330 Change-Id: Ife34ca0f9c233dd3c3df80f6fea580af43afcdeb
-rw-r--r--java/com/android/server/ethernet/EthernetNetworkFactory.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/java/com/android/server/ethernet/EthernetNetworkFactory.java b/java/com/android/server/ethernet/EthernetNetworkFactory.java
index 83a3fa7..a471154 100644
--- a/java/com/android/server/ethernet/EthernetNetworkFactory.java
+++ b/java/com/android/server/ethernet/EthernetNetworkFactory.java
@@ -140,6 +140,9 @@ class EthernetNetworkFactory {
mNetworkInfo.setDetailedState(DetailedState.DISCONNECTED, null, mHwAddr);
}
updateAgent();
+ // set our score lower than any network could go
+ // so we get dropped. TODO - just unregister the factory
+ // when link goes down.
mFactory.setScoreFilter(up ? NETWORK_SCORE : -1);
}
}
@@ -246,7 +249,8 @@ class EthernetNetworkFactory {
mNetworkAgent.sendNetworkCapabilities(mNetworkCapabilities);
mNetworkAgent.sendNetworkInfo(mNetworkInfo);
mNetworkAgent.sendLinkProperties(mLinkProperties);
- mNetworkAgent.sendNetworkScore(mLinkUp? NETWORK_SCORE : -1);
+ // never set the network score below 0.
+ mNetworkAgent.sendNetworkScore(mLinkUp? NETWORK_SCORE : 0);
}
}
@@ -277,6 +281,8 @@ class EthernetNetworkFactory {
// noticing.
if (!NetworkUtils.runDhcp(mIface, dhcpResults)) {
Log.e(TAG, "DHCP request error:" + NetworkUtils.getDhcpError());
+ // set our score lower than any network could go
+ // so we get dropped.
mFactory.setScoreFilter(-1);
return;
}