Merge "Fix up upstream interface types for case DUN_UNSPECIFIED" into oc-dev

This commit is contained in:
Jayachandran Chinnakkannu
2017-05-23 20:42:41 +00:00
committed by Android (Google) Code Review
2 changed files with 16 additions and 2 deletions

View File

@@ -163,20 +163,31 @@ public class TetheringConfiguration {
} }
// Fix up upstream interface types for DUN or mobile. NOTE: independent // Fix up upstream interface types for DUN or mobile. NOTE: independent
// of the value of |requiresDun|, cell data of one form or another is // of the value of |dunCheck|, cell data of one form or another is
// *always* an upstream, regardless of the upstream interface types // *always* an upstream, regardless of the upstream interface types
// specified by configuration resources. // specified by configuration resources.
if (dunCheck == DUN_REQUIRED) { if (dunCheck == DUN_REQUIRED) {
if (!upstreamIfaceTypes.contains(TYPE_MOBILE_DUN)) { if (!upstreamIfaceTypes.contains(TYPE_MOBILE_DUN)) {
upstreamIfaceTypes.add(TYPE_MOBILE_DUN); upstreamIfaceTypes.add(TYPE_MOBILE_DUN);
} }
} else { } else if (dunCheck == DUN_NOT_REQUIRED) {
if (!upstreamIfaceTypes.contains(TYPE_MOBILE)) { if (!upstreamIfaceTypes.contains(TYPE_MOBILE)) {
upstreamIfaceTypes.add(TYPE_MOBILE); upstreamIfaceTypes.add(TYPE_MOBILE);
} }
if (!upstreamIfaceTypes.contains(TYPE_MOBILE_HIPRI)) { if (!upstreamIfaceTypes.contains(TYPE_MOBILE_HIPRI)) {
upstreamIfaceTypes.add(TYPE_MOBILE_HIPRI); upstreamIfaceTypes.add(TYPE_MOBILE_HIPRI);
} }
} else {
// Fix upstream interface types for case DUN_UNSPECIFIED.
// Do not modify if a cellular interface type is already present in the
// upstream interface types. Add TYPE_MOBILE and TYPE_MOBILE_HIPRI if no
// cellular interface types are found in the upstream interface types.
if (!(upstreamIfaceTypes.contains(TYPE_MOBILE_DUN)
|| upstreamIfaceTypes.contains(TYPE_MOBILE)
|| upstreamIfaceTypes.contains(TYPE_MOBILE_HIPRI))) {
upstreamIfaceTypes.add(TYPE_MOBILE);
upstreamIfaceTypes.add(TYPE_MOBILE_HIPRI);
}
} }
return upstreamIfaceTypes; return upstreamIfaceTypes;

View File

@@ -128,5 +128,8 @@ public class TetheringConfigurationTest {
assertTrue(cfg.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE_DUN)); assertTrue(cfg.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE_DUN));
// Just to prove we haven't clobbered Wi-Fi: // Just to prove we haven't clobbered Wi-Fi:
assertTrue(cfg.preferredUpstreamIfaceTypes.contains(TYPE_WIFI)); assertTrue(cfg.preferredUpstreamIfaceTypes.contains(TYPE_WIFI));
// Check that we have not added new cellular interface types
assertFalse(cfg.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE));
assertFalse(cfg.preferredUpstreamIfaceTypes.contains(TYPE_MOBILE_HIPRI));
} }
} }