Allow network providers to set the linger duration.
Test: atest CtsNetTestCases:NetworkAgentTest#testSetLingerDuration CTS-Coverage-Bug: 184796264 Bug: 184227264 Merged-In: I3c2563d4ae4e3715d0c6270344ba8f7ef067872f Merged-In: I7f420faa40863385114705d6971cf00887d03318 Change-Id: I7f420faa40863385114705d6971cf00887d03318 (cherry-picked from ag/14100410)
This commit is contained in:
@@ -1400,8 +1400,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
new NetworkInfo(TYPE_NONE, 0, "", ""),
|
||||
new LinkProperties(), new NetworkCapabilities(),
|
||||
new NetworkScore.Builder().setLegacyInt(0).build(), mContext, null,
|
||||
new NetworkAgentConfig(), this, null, null, 0, INVALID_UID, mQosCallbackTracker,
|
||||
mDeps);
|
||||
new NetworkAgentConfig(), this, null, null, 0, INVALID_UID,
|
||||
mLingerDelayMs, mQosCallbackTracker, mDeps);
|
||||
}
|
||||
|
||||
private static NetworkCapabilities createDefaultNetworkCapabilitiesForUid(int uid) {
|
||||
@@ -3234,6 +3234,11 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
} else {
|
||||
logwtf(nai.toShortString() + " set invalid teardown delay " + msg.arg1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NetworkAgent.EVENT_LINGER_DURATION_CHANGED: {
|
||||
nai.setLingerDuration((int) arg.second);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6597,7 +6602,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
final NetworkAgentInfo nai = new NetworkAgentInfo(na,
|
||||
new Network(mNetIdManager.reserveNetId()), new NetworkInfo(networkInfo), lp, nc,
|
||||
currentScore, mContext, mTrackerHandler, new NetworkAgentConfig(networkAgentConfig),
|
||||
this, mNetd, mDnsResolver, providerId, uid, mQosCallbackTracker, mDeps);
|
||||
this, mNetd, mDnsResolver, providerId, uid, mLingerDelayMs,
|
||||
mQosCallbackTracker, mDeps);
|
||||
|
||||
// Make sure the LinkProperties and NetworkCapabilities reflect what the agent info says.
|
||||
processCapabilitiesFromAgent(nai, nc);
|
||||
@@ -7841,7 +7847,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
log(" accepting network in place of " + previousSatisfier.toShortString());
|
||||
}
|
||||
previousSatisfier.removeRequest(previousRequest.requestId);
|
||||
previousSatisfier.lingerRequest(previousRequest.requestId, now, mLingerDelayMs);
|
||||
previousSatisfier.lingerRequest(previousRequest.requestId, now);
|
||||
} else {
|
||||
if (VDBG || DDBG) log(" accepting network in place of null");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user