Loading core/java/android/net/metrics/ApfStats.java +1 −1 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ import android.os.Parcel; import android.os.Parcelable; /** * An event logged for an interface with APF capabilities when its IpManager state machine exits. * An event logged for an interface with APF capabilities when its IpClient state machine exits. * {@hide} */ public final class ApfStats implements Parcelable { Loading services/net/java/android/net/ip/IpClient.java +45 −9 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import android.net.util.MultinetworkPolicyTracker; import android.net.util.NetdService; import android.net.util.NetworkConstants; import android.net.util.SharedLog; import android.os.ConditionVariable; import android.os.INetworkManagementService; import android.os.Message; import android.os.RemoteException; Loading Loading @@ -150,6 +151,28 @@ public class IpClient extends StateMachine { public void setNeighborDiscoveryOffload(boolean enable) {} } public static class WaitForProvisioningCallback extends Callback { private final ConditionVariable mCV = new ConditionVariable(); private LinkProperties mCallbackLinkProperties; public LinkProperties waitForProvisioning() { mCV.block(); return mCallbackLinkProperties; } @Override public void onProvisioningSuccess(LinkProperties newLp) { mCallbackLinkProperties = newLp; mCV.open(); } @Override public void onProvisioningFailure(LinkProperties newLp) { mCallbackLinkProperties = null; mCV.open(); } } // Use a wrapper class to log in order to ensure complete and detailed // logging. This method is lighter weight than annotations/reflection // and has the following benefits: Loading Loading @@ -281,6 +304,11 @@ public class IpClient extends StateMachine { return this; } public Builder withoutMultinetworkPolicyTracker() { mConfig.mUsingMultinetworkPolicyTracker = false; return this; } public Builder withoutIpReachabilityMonitor() { mConfig.mUsingIpReachabilityMonitor = false; return this; Loading Loading @@ -343,6 +371,7 @@ public class IpClient extends StateMachine { /* package */ boolean mEnableIPv4 = true; /* package */ boolean mEnableIPv6 = true; /* package */ boolean mUsingMultinetworkPolicyTracker = true; /* package */ boolean mUsingIpReachabilityMonitor = true; /* package */ int mRequestedPreDhcpActionMs; /* package */ InitialConfiguration mInitialConfig; Loading Loading @@ -374,6 +403,7 @@ public class IpClient extends StateMachine { return new StringJoiner(", ", getClass().getSimpleName() + "{", "}") .add("mEnableIPv4: " + mEnableIPv4) .add("mEnableIPv6: " + mEnableIPv6) .add("mUsingMultinetworkPolicyTracker: " + mUsingMultinetworkPolicyTracker) .add("mUsingIpReachabilityMonitor: " + mUsingIpReachabilityMonitor) .add("mRequestedPreDhcpActionMs: " + mRequestedPreDhcpActionMs) .add("mInitialConfig: " + mInitialConfig) Loading Loading @@ -559,7 +589,6 @@ public class IpClient extends StateMachine { private final NetlinkTracker mNetlinkTracker; private final WakeupMessage mProvisioningTimeoutAlarm; private final WakeupMessage mDhcpActionTimeoutAlarm; private final MultinetworkPolicyTracker mMultinetworkPolicyTracker; private final SharedLog mLog; private final LocalLog mConnectivityPacketLog; private final MessageHandlingLogger mMsgStateLogger; Loading @@ -573,6 +602,7 @@ public class IpClient extends StateMachine { */ private LinkProperties mLinkProperties; private ProvisioningConfiguration mConfiguration; private MultinetworkPolicyTracker mMultinetworkPolicyTracker; private IpReachabilityMonitor mIpReachabilityMonitor; private DhcpClient mDhcpClient; private DhcpResults mDhcpResults; Loading Loading @@ -685,9 +715,6 @@ public class IpClient extends StateMachine { mLinkProperties = new LinkProperties(); mLinkProperties.setInterfaceName(mInterfaceName); mMultinetworkPolicyTracker = new MultinetworkPolicyTracker(mContext, getHandler(), () -> { mLog.log("OBSERVED AvoidBadWifi changed"); }); mProvisioningTimeoutAlarm = new WakeupMessage(mContext, getHandler(), mTag + ".EVENT_PROVISIONING_TIMEOUT", EVENT_PROVISIONING_TIMEOUT); mDhcpActionTimeoutAlarm = new WakeupMessage(mContext, getHandler(), Loading Loading @@ -719,8 +746,6 @@ public class IpClient extends StateMachine { } catch (RemoteException e) { logError("Couldn't register NetlinkTracker: %s", e); } mMultinetworkPolicyTracker.start(); } private void stopStateMachineUpdaters() { Loading @@ -729,8 +754,6 @@ public class IpClient extends StateMachine { } catch (RemoteException e) { logError("Couldn't unregister NetlinkTracker: %s", e); } mMultinetworkPolicyTracker.shutdown(); } @Override Loading Loading @@ -1028,7 +1051,8 @@ public class IpClient extends StateMachine { // Note that we can still be disconnected by IpReachabilityMonitor // if the IPv6 default gateway (but not the IPv6 DNS servers; see // accompanying code in IpReachabilityMonitor) is unreachable. final boolean ignoreIPv6ProvisioningLoss = !mMultinetworkPolicyTracker.getAvoidBadWifi(); final boolean ignoreIPv6ProvisioningLoss = (mMultinetworkPolicyTracker != null) && !mMultinetworkPolicyTracker.getAvoidBadWifi(); // Additionally: // Loading Loading @@ -1520,6 +1544,13 @@ public class IpClient extends StateMachine { return; } if (mConfiguration.mUsingMultinetworkPolicyTracker) { mMultinetworkPolicyTracker = new MultinetworkPolicyTracker( mContext, getHandler(), () -> { mLog.log("OBSERVED AvoidBadWifi changed"); }); mMultinetworkPolicyTracker.start(); } if (mConfiguration.mUsingIpReachabilityMonitor && !startIpReachabilityMonitor()) { doImmediateProvisioningFailure( IpManagerEvent.ERROR_STARTING_IPREACHABILITYMONITOR); Loading @@ -1537,6 +1568,11 @@ public class IpClient extends StateMachine { mIpReachabilityMonitor = null; } if (mMultinetworkPolicyTracker != null) { mMultinetworkPolicyTracker.shutdown(); mMultinetworkPolicyTracker = null; } if (mDhcpClient != null) { mDhcpClient.sendMessage(DhcpClient.CMD_STOP_DHCP); mDhcpClient.doQuit(); Loading services/net/java/android/net/ip/IpManager.java +0 −29 Original line number Diff line number Diff line Loading @@ -114,35 +114,6 @@ public class IpManager extends IpClient { public static class Callback extends IpClient.Callback { } public static class WaitForProvisioningCallback extends Callback { private LinkProperties mCallbackLinkProperties; public LinkProperties waitForProvisioning() { synchronized (this) { try { wait(); } catch (InterruptedException e) {} return mCallbackLinkProperties; } } @Override public void onProvisioningSuccess(LinkProperties newLp) { synchronized (this) { mCallbackLinkProperties = newLp; notify(); } } @Override public void onProvisioningFailure(LinkProperties newLp) { synchronized (this) { mCallbackLinkProperties = null; notify(); } } } public IpManager(Context context, String ifName, Callback callback) { super(context, ifName, callback); } Loading tests/net/java/android/net/apf/ApfTest.java +69 −69 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
core/java/android/net/metrics/ApfStats.java +1 −1 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ import android.os.Parcel; import android.os.Parcelable; /** * An event logged for an interface with APF capabilities when its IpManager state machine exits. * An event logged for an interface with APF capabilities when its IpClient state machine exits. * {@hide} */ public final class ApfStats implements Parcelable { Loading
services/net/java/android/net/ip/IpClient.java +45 −9 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import android.net.util.MultinetworkPolicyTracker; import android.net.util.NetdService; import android.net.util.NetworkConstants; import android.net.util.SharedLog; import android.os.ConditionVariable; import android.os.INetworkManagementService; import android.os.Message; import android.os.RemoteException; Loading Loading @@ -150,6 +151,28 @@ public class IpClient extends StateMachine { public void setNeighborDiscoveryOffload(boolean enable) {} } public static class WaitForProvisioningCallback extends Callback { private final ConditionVariable mCV = new ConditionVariable(); private LinkProperties mCallbackLinkProperties; public LinkProperties waitForProvisioning() { mCV.block(); return mCallbackLinkProperties; } @Override public void onProvisioningSuccess(LinkProperties newLp) { mCallbackLinkProperties = newLp; mCV.open(); } @Override public void onProvisioningFailure(LinkProperties newLp) { mCallbackLinkProperties = null; mCV.open(); } } // Use a wrapper class to log in order to ensure complete and detailed // logging. This method is lighter weight than annotations/reflection // and has the following benefits: Loading Loading @@ -281,6 +304,11 @@ public class IpClient extends StateMachine { return this; } public Builder withoutMultinetworkPolicyTracker() { mConfig.mUsingMultinetworkPolicyTracker = false; return this; } public Builder withoutIpReachabilityMonitor() { mConfig.mUsingIpReachabilityMonitor = false; return this; Loading Loading @@ -343,6 +371,7 @@ public class IpClient extends StateMachine { /* package */ boolean mEnableIPv4 = true; /* package */ boolean mEnableIPv6 = true; /* package */ boolean mUsingMultinetworkPolicyTracker = true; /* package */ boolean mUsingIpReachabilityMonitor = true; /* package */ int mRequestedPreDhcpActionMs; /* package */ InitialConfiguration mInitialConfig; Loading Loading @@ -374,6 +403,7 @@ public class IpClient extends StateMachine { return new StringJoiner(", ", getClass().getSimpleName() + "{", "}") .add("mEnableIPv4: " + mEnableIPv4) .add("mEnableIPv6: " + mEnableIPv6) .add("mUsingMultinetworkPolicyTracker: " + mUsingMultinetworkPolicyTracker) .add("mUsingIpReachabilityMonitor: " + mUsingIpReachabilityMonitor) .add("mRequestedPreDhcpActionMs: " + mRequestedPreDhcpActionMs) .add("mInitialConfig: " + mInitialConfig) Loading Loading @@ -559,7 +589,6 @@ public class IpClient extends StateMachine { private final NetlinkTracker mNetlinkTracker; private final WakeupMessage mProvisioningTimeoutAlarm; private final WakeupMessage mDhcpActionTimeoutAlarm; private final MultinetworkPolicyTracker mMultinetworkPolicyTracker; private final SharedLog mLog; private final LocalLog mConnectivityPacketLog; private final MessageHandlingLogger mMsgStateLogger; Loading @@ -573,6 +602,7 @@ public class IpClient extends StateMachine { */ private LinkProperties mLinkProperties; private ProvisioningConfiguration mConfiguration; private MultinetworkPolicyTracker mMultinetworkPolicyTracker; private IpReachabilityMonitor mIpReachabilityMonitor; private DhcpClient mDhcpClient; private DhcpResults mDhcpResults; Loading Loading @@ -685,9 +715,6 @@ public class IpClient extends StateMachine { mLinkProperties = new LinkProperties(); mLinkProperties.setInterfaceName(mInterfaceName); mMultinetworkPolicyTracker = new MultinetworkPolicyTracker(mContext, getHandler(), () -> { mLog.log("OBSERVED AvoidBadWifi changed"); }); mProvisioningTimeoutAlarm = new WakeupMessage(mContext, getHandler(), mTag + ".EVENT_PROVISIONING_TIMEOUT", EVENT_PROVISIONING_TIMEOUT); mDhcpActionTimeoutAlarm = new WakeupMessage(mContext, getHandler(), Loading Loading @@ -719,8 +746,6 @@ public class IpClient extends StateMachine { } catch (RemoteException e) { logError("Couldn't register NetlinkTracker: %s", e); } mMultinetworkPolicyTracker.start(); } private void stopStateMachineUpdaters() { Loading @@ -729,8 +754,6 @@ public class IpClient extends StateMachine { } catch (RemoteException e) { logError("Couldn't unregister NetlinkTracker: %s", e); } mMultinetworkPolicyTracker.shutdown(); } @Override Loading Loading @@ -1028,7 +1051,8 @@ public class IpClient extends StateMachine { // Note that we can still be disconnected by IpReachabilityMonitor // if the IPv6 default gateway (but not the IPv6 DNS servers; see // accompanying code in IpReachabilityMonitor) is unreachable. final boolean ignoreIPv6ProvisioningLoss = !mMultinetworkPolicyTracker.getAvoidBadWifi(); final boolean ignoreIPv6ProvisioningLoss = (mMultinetworkPolicyTracker != null) && !mMultinetworkPolicyTracker.getAvoidBadWifi(); // Additionally: // Loading Loading @@ -1520,6 +1544,13 @@ public class IpClient extends StateMachine { return; } if (mConfiguration.mUsingMultinetworkPolicyTracker) { mMultinetworkPolicyTracker = new MultinetworkPolicyTracker( mContext, getHandler(), () -> { mLog.log("OBSERVED AvoidBadWifi changed"); }); mMultinetworkPolicyTracker.start(); } if (mConfiguration.mUsingIpReachabilityMonitor && !startIpReachabilityMonitor()) { doImmediateProvisioningFailure( IpManagerEvent.ERROR_STARTING_IPREACHABILITYMONITOR); Loading @@ -1537,6 +1568,11 @@ public class IpClient extends StateMachine { mIpReachabilityMonitor = null; } if (mMultinetworkPolicyTracker != null) { mMultinetworkPolicyTracker.shutdown(); mMultinetworkPolicyTracker = null; } if (mDhcpClient != null) { mDhcpClient.sendMessage(DhcpClient.CMD_STOP_DHCP); mDhcpClient.doQuit(); Loading
services/net/java/android/net/ip/IpManager.java +0 −29 Original line number Diff line number Diff line Loading @@ -114,35 +114,6 @@ public class IpManager extends IpClient { public static class Callback extends IpClient.Callback { } public static class WaitForProvisioningCallback extends Callback { private LinkProperties mCallbackLinkProperties; public LinkProperties waitForProvisioning() { synchronized (this) { try { wait(); } catch (InterruptedException e) {} return mCallbackLinkProperties; } } @Override public void onProvisioningSuccess(LinkProperties newLp) { synchronized (this) { mCallbackLinkProperties = newLp; notify(); } } @Override public void onProvisioningFailure(LinkProperties newLp) { synchronized (this) { mCallbackLinkProperties = null; notify(); } } } public IpManager(Context context, String ifName, Callback callback) { super(context, ifName, callback); } Loading
tests/net/java/android/net/apf/ApfTest.java +69 −69 File changed.Preview size limit exceeded, changes collapsed. Show changes