Separate events usage for starting socket keepalives

This is a clean up commit to correct the javadoc of
NetworkAgent.CMD_START_SOCKET_KEEPALIVE. This event was used
between ConnectivityService/NetworkAgent, and also
ConnectivityService/KeepaliveTracker with different semantics.
This may confuse the developers to update the doc incorrectly,
so also separate the usage to different events.

Also move the event definitions together so that a new event
definition will not mis-use the existing values.

Test: atest FrameworksNetTests
Change-Id: I73ebd8abcc610531da3057da2d643a41befb2099
This commit is contained in:
chiachangwang
2023-04-14 07:32:43 +00:00
parent e2294fb13e
commit f1b1fb4b7f
4 changed files with 50 additions and 41 deletions

View File

@@ -463,7 +463,11 @@ public class ConnectivityService extends IConnectivityManager.Stub
private String mCurrentTcpBufferSizes;
private static final SparseArray<String> sMagicDecoderRing = MessageUtils.findMessageNames(
new Class[] { ConnectivityService.class, NetworkAgent.class, NetworkAgentInfo.class });
new Class[] {
ConnectivityService.class,
NetworkAgent.class,
NetworkAgentInfo.class,
AutomaticOnOffKeepaliveTracker.class });
private enum ReapUnvalidatedNetworks {
// Tear down networks that have no chance (e.g. even if validated) of becoming
@@ -5605,12 +5609,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
handleConfigureAlwaysOnNetworks();
break;
}
// Sent by KeepaliveTracker to process an app request on the state machine thread.
case NetworkAgent.CMD_START_SOCKET_KEEPALIVE: {
// Sent by AutomaticOnOffKeepaliveTracker to process an app request on the
// handler thread.
case AutomaticOnOffKeepaliveTracker.CMD_REQUEST_START_KEEPALIVE: {
mKeepaliveTracker.handleStartKeepalive(msg);
break;
}
case NetworkAgent.CMD_MONITOR_AUTOMATIC_KEEPALIVE: {
case AutomaticOnOffKeepaliveTracker.CMD_MONITOR_AUTOMATIC_KEEPALIVE: {
final AutomaticOnOffKeepalive ki =
mKeepaliveTracker.getKeepaliveForBinder((IBinder) msg.obj);
if (null == ki) return; // The callback was unregistered before the alarm fired