summaryrefslogtreecommitdiff
path: root/src/android/net/dhcp/DhcpClient.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/net/dhcp/DhcpClient.java')
-rw-r--r--src/android/net/dhcp/DhcpClient.java23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/android/net/dhcp/DhcpClient.java b/src/android/net/dhcp/DhcpClient.java
index 6d48c0c..011cbaf 100644
--- a/src/android/net/dhcp/DhcpClient.java
+++ b/src/android/net/dhcp/DhcpClient.java
@@ -74,6 +74,7 @@ import android.net.util.InterfaceParams;
import android.net.util.NetworkStackUtils;
import android.net.util.PacketReader;
import android.net.util.SocketUtils;
+import android.os.Build;
import android.os.Handler;
import android.os.Message;
import android.os.PowerManager;
@@ -98,6 +99,7 @@ import com.android.internal.util.WakeupMessage;
import com.android.networkstack.R;
import com.android.networkstack.apishim.CaptivePortalDataShimImpl;
import com.android.networkstack.apishim.SocketUtilsShimImpl;
+import com.android.networkstack.apishim.common.ShimUtils;
import com.android.networkstack.arp.ArpPacket;
import java.io.FileDescriptor;
@@ -407,8 +409,10 @@ public class DhcpClient extends StateMachine {
* Return whether a feature guarded by a feature flag is enabled.
* @see NetworkStackUtils#isFeatureEnabled(Context, String, String)
*/
- public boolean isFeatureEnabled(final Context context, final String name) {
- return NetworkStackUtils.isFeatureEnabled(context, NAMESPACE_CONNECTIVITY, name);
+ public boolean isFeatureEnabled(final Context context, final String name,
+ boolean defaultEnabled) {
+ return NetworkStackUtils.isFeatureEnabled(context, NAMESPACE_CONNECTIVITY, name,
+ defaultEnabled);
}
/**
@@ -496,23 +500,32 @@ public class DhcpClient extends StateMachine {
/**
* check whether or not to support caching the last lease info and INIT-REBOOT state.
+ *
+ * INIT-REBOOT state is supported on Android R by default if there is no experiment flag set to
+ * disable this feature explicitly, meanwhile we still hope to be able to control this feature
+ * on/off by pushing experiment flag for A/B testing and metrics collection on both of Android
+ * Q and R version, however it's disbled on Android Q by default.
*/
public boolean isDhcpLeaseCacheEnabled() {
- return mDependencies.isFeatureEnabled(mContext, DHCP_INIT_REBOOT_VERSION);
+ final boolean defaultEnabled =
+ ShimUtils.isReleaseOrDevelopmentApiAbove(Build.VERSION_CODES.Q);
+ return mDependencies.isFeatureEnabled(mContext, DHCP_INIT_REBOOT_VERSION, defaultEnabled);
}
/**
* check whether or not to support DHCP Rapid Commit option.
*/
public boolean isDhcpRapidCommitEnabled() {
- return mDependencies.isFeatureEnabled(mContext, DHCP_RAPID_COMMIT_VERSION);
+ return mDependencies.isFeatureEnabled(mContext, DHCP_RAPID_COMMIT_VERSION,
+ false /* defaultEnabled */);
}
/**
* check whether or not to support IP address conflict detection and DHCPDECLINE.
*/
public boolean isDhcpIpConflictDetectEnabled() {
- return mDependencies.isFeatureEnabled(mContext, DHCP_IP_CONFLICT_DETECT_VERSION);
+ return mDependencies.isFeatureEnabled(mContext, DHCP_IP_CONFLICT_DETECT_VERSION,
+ false /* defaultEnabled */);
}
private void confirmDhcpLease(DhcpPacket packet, DhcpResults results) {