From c2303139efd5d0e6c2c8ade98fc046f771a1d621 Mon Sep 17 00:00:00 2001 From: Remi NGUYEN VAN Date: Wed, 9 Jun 2021 14:42:00 +0900 Subject: [PATCH] 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 Change-Id: I45adc527267aa86d52e824f426699c5a7e874f63 --- .../net/util/java/android/net/cts/util/CtsNetUtils.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/cts/net/util/java/android/net/cts/util/CtsNetUtils.java b/tests/cts/net/util/java/android/net/cts/util/CtsNetUtils.java index 041a9cbf19..f9c4794fa6 100644 --- a/tests/cts/net/util/java/android/net/cts/util/CtsNetUtils.java +++ b/tests/cts/net/util/java/android/net/cts/util/CtsNetUtils.java @@ -530,12 +530,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);