Merge "Treat unknown dns modes as empty string (ie. opportunistic)"
diff --git a/common/framework/com/android/net/module/util/ConnectivitySettingsUtils.java b/common/framework/com/android/net/module/util/ConnectivitySettingsUtils.java
index b7eb70b..f4856b3 100644
--- a/common/framework/com/android/net/module/util/ConnectivitySettingsUtils.java
+++ b/common/framework/com/android/net/module/util/ConnectivitySettingsUtils.java
@@ -60,6 +60,10 @@
}
private static int getPrivateDnsModeAsInt(String mode) {
+ // If both PRIVATE_DNS_MODE and PRIVATE_DNS_DEFAULT_MODE are not set, choose
+ // PRIVATE_DNS_MODE_OPPORTUNISTIC as default mode.
+ if (TextUtils.isEmpty(mode))
+ return PRIVATE_DNS_MODE_OPPORTUNISTIC;
switch (mode) {
case "off":
return PRIVATE_DNS_MODE_OFF;
@@ -68,7 +72,10 @@
case "opportunistic":
return PRIVATE_DNS_MODE_OPPORTUNISTIC;
default:
- throw new IllegalArgumentException("Invalid private dns mode: " + mode);
+ // b/260211513: adb shell settings put global private_dns_mode foo
+ // can result in arbitrary strings - treat any unknown value as empty string.
+ // throw new IllegalArgumentException("Invalid private dns mode: " + mode);
+ return PRIVATE_DNS_MODE_OPPORTUNISTIC;
}
}
@@ -82,9 +89,6 @@
final ContentResolver cr = context.getContentResolver();
String mode = Settings.Global.getString(cr, PRIVATE_DNS_MODE);
if (TextUtils.isEmpty(mode)) mode = Settings.Global.getString(cr, PRIVATE_DNS_DEFAULT_MODE);
- // If both PRIVATE_DNS_MODE and PRIVATE_DNS_DEFAULT_MODE are not set, choose
- // PRIVATE_DNS_MODE_OPPORTUNISTIC as default mode.
- if (TextUtils.isEmpty(mode)) return PRIVATE_DNS_MODE_OPPORTUNISTIC;
return getPrivateDnsModeAsInt(mode);
}