Also treat loss of IPv6 as a loss of provisioning.
Bug: 23226635 Change-Id: Icebb7d83ed5b3b796901b9f023909a02eb461941
This commit is contained in:
@@ -119,8 +119,12 @@ public final class LinkProperties implements Parcelable {
|
||||
//
|
||||
// For one such example of this, see b/18867306.
|
||||
//
|
||||
// TODO: Remove this special case altogether.
|
||||
if (before.isIPv4Provisioned() && !after.isIPv4Provisioned()) {
|
||||
// Additionally, losing IPv6 provisioning can result in TCP
|
||||
// connections getting stuck until timeouts fire and other
|
||||
// baffling failures. Therefore, loss of either IPv4 or IPv6 on a
|
||||
// previously dualstack network is deemed a lost of provisioning.
|
||||
if ((before.isIPv4Provisioned() && !after.isIPv4Provisioned()) ||
|
||||
(before.isIPv6Provisioned() && !after.isIPv6Provisioned())) {
|
||||
return ProvisioningChange.LOST_PROVISIONING;
|
||||
}
|
||||
return ProvisioningChange.STILL_PROVISIONED;
|
||||
|
||||
@@ -560,10 +560,14 @@ public class LinkPropertiesTest extends TestCase {
|
||||
assertTrue(v46lp.isIPv6Provisioned());
|
||||
assertTrue(v46lp.isProvisioned());
|
||||
|
||||
assertEquals(ProvisioningChange.STILL_PROVISIONED,
|
||||
LinkProperties.compareProvisioning(v4lp, v46lp));
|
||||
assertEquals(ProvisioningChange.STILL_PROVISIONED,
|
||||
LinkProperties.compareProvisioning(v6lp, v46lp));
|
||||
assertEquals(ProvisioningChange.LOST_PROVISIONING,
|
||||
LinkProperties.compareProvisioning(v46lp, v6lp));
|
||||
assertEquals(ProvisioningChange.LOST_PROVISIONING,
|
||||
LinkProperties.compareProvisioning(v46lp, v4lp));
|
||||
|
||||
// Check that losing and gaining a secondary router does not change
|
||||
// the provisioning status.
|
||||
|
||||
Reference in New Issue
Block a user