diff options
author | Robert Greenwalt <rgreenwalt@google.com> | 2011-03-26 08:32:25 -0700 |
---|---|---|
committer | Robert Greenwalt <rgreenwalt@google.com> | 2011-03-26 08:32:25 -0700 |
commit | ecc33d43e95b0c85c1550c3034e1df6992f46388 (patch) | |
tree | f4f04ca084404e2117666cc7e7ed19b9c90aa601 /core | |
parent | 05f14e2bcf78be62b35e85902408ea66103a3881 (diff) | |
download | frameworks_base-ecc33d43e95b0c85c1550c3034e1df6992f46388.zip frameworks_base-ecc33d43e95b0c85c1550c3034e1df6992f46388.tar.gz frameworks_base-ecc33d43e95b0c85c1550c3034e1df6992f46388.tar.bz2 |
Fix Default route after secondary net use.
Backport of honeycomb-mr1 change 103299 adding a host route for the
default gateway before adding the default route.
Also fixing bug where "already active" condition of APN failed to
propagate the default gateway info, result in a loss of that address.
bug:4175328
Change-Id: I4cf8605b259cf40c3631c7ce6cca4c75c1b22651
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/net/MobileDataStateTracker.java | 4 | ||||
-rw-r--r-- | core/java/android/net/NetworkStateTracker.java | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/core/java/android/net/MobileDataStateTracker.java b/core/java/android/net/MobileDataStateTracker.java index b559601..4d89df3 100644 --- a/core/java/android/net/MobileDataStateTracker.java +++ b/core/java/android/net/MobileDataStateTracker.java @@ -246,6 +246,9 @@ public class MobileDataStateTracker extends NetworkStateTracker { Log.d(TAG, "CONNECTED event did not supply interface name."); } mDefaultGatewayAddr = intent.getIntExtra(Phone.DATA_GATEWAY_KEY, 0); + if (mDefaultGatewayAddr == 0) { + Log.d(TAG, "CONNECTED event did not supply a default gateway."); + } setDetailedState(DetailedState.CONNECTED, reason, apnName); break; } @@ -384,6 +387,7 @@ public class MobileDataStateTracker extends NetworkStateTracker { intent.putExtra(Phone.DATA_APN_KEY, mApnName); intent.putExtra(Phone.DATA_IFACE_NAME_KEY, mInterfaceName); intent.putExtra(Phone.NETWORK_UNAVAILABLE_KEY, false); + intent.putExtra(Phone.DATA_GATEWAY_KEY, mDefaultGatewayAddr); if (mStateReceiver != null) mStateReceiver.onReceive(mContext, intent); break; case Phone.APN_REQUEST_STARTED: diff --git a/core/java/android/net/NetworkStateTracker.java b/core/java/android/net/NetworkStateTracker.java index 19986d1..aa3e922 100644 --- a/core/java/android/net/NetworkStateTracker.java +++ b/core/java/android/net/NetworkStateTracker.java @@ -162,6 +162,7 @@ public abstract class NetworkStateTracker extends Handler { Log.d(TAG, "addDefaultRoute for " + mNetworkInfo.getTypeName() + " (" + mInterfaceName + "), GatewayAddr=" + mDefaultGatewayAddr); } + NetworkUtils.addHostRoute(mInterfaceName, mDefaultGatewayAddr); NetworkUtils.setDefaultRoute(mInterfaceName, mDefaultGatewayAddr); } } |