Improve handling of invalid private DNS settings

When private DNS mode is strict, there should always be a private DNS
specifier with the hostname.

Instead of restoring an invalid strict mode setting when set,
have tests reset private DNS mode to opportunistic and fail.

Bug: 190465704
Test: atest CtsNetTestCases
Original-Change: https://android-review.googlesource.com/1730543
Merged-In: I45adc527267aa86d52e824f426699c5a7e874f63
Change-Id: I45adc527267aa86d52e824f426699c5a7e874f63
This commit is contained in:
Treehugger Robot
2021-06-09 11:09:35 +00:00
committed by Remi NGUYEN VAN
parent 77fdd31db1
commit 4a15140077

View File

@@ -529,12 +529,14 @@ public final class CtsNetUtils {
}
// restore private DNS setting
if (PRIVATE_DNS_MODE_STRICT.equals(mOldPrivateDnsMode)) {
setPrivateDnsStrictMode(mOldPrivateDnsSpecifier);
// In case of invalid setting, still restore it but fail the test
// In case of invalid setting, set to opportunistic to avoid a bad state and fail
if (mOldPrivateDnsSpecifier == null) {
Settings.Global.putString(mCR, Settings.Global.PRIVATE_DNS_MODE,
PRIVATE_DNS_MODE_OPPORTUNISTIC);
fail("Invalid private DNS setting: no hostname specified in strict mode");
}
setPrivateDnsStrictMode(mOldPrivateDnsSpecifier);
awaitPrivateDnsSetting("restorePrivateDnsSetting timeout",
mCm.getActiveNetwork(),
mOldPrivateDnsSpecifier, true);