diff options
author | Robert Greenwalt <rgreenwalt@google.com> | 2014-09-10 10:06:32 -0700 |
---|---|---|
committer | Robert Greenwalt <rgreenwalt@google.com> | 2014-09-10 10:06:32 -0700 |
commit | e3cbf2e7349dd366f33905784595e2e3a1cec245 (patch) | |
tree | 32020aad53fb7de40df74baba44a4ce1749993bd | |
parent | 69b9c6a7d6453c1c76857c5edfeb1d89a1315674 (diff) | |
download | android_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.java | 8 |
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; } |