From 90d2d0d0d9161ba9c536c5b30796efe0e124384f Mon Sep 17 00:00:00 2001 From: Handa Wang Date: Tue, 9 Jan 2024 11:09:16 +0800 Subject: [PATCH] Request Thread network at the initialize() Currently requestThreadNetwork is called in registerThreadNetwork. This creates a new NetworkCallback for Thread every time when Thread is turned on. We'd better just use one callback to avoid potential issues. Bug: 319179354 Change-Id: I96bad351f089b32a9acd919dea2e2b6b2aea68d2 --- .../server/thread/ThreadNetworkControllerService.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/thread/service/java/com/android/server/thread/ThreadNetworkControllerService.java b/thread/service/java/com/android/server/thread/ThreadNetworkControllerService.java index 6cd0ac3bcb..cd59e4e94a 100644 --- a/thread/service/java/com/android/server/thread/ThreadNetworkControllerService.java +++ b/thread/service/java/com/android/server/thread/ThreadNetworkControllerService.java @@ -333,6 +333,7 @@ final class ThreadNetworkControllerService extends IThreadNetworkController.Stub mLinkProperties.setMtu(TunInterfaceController.MTU); mConnectivityManager.registerNetworkProvider(mNetworkProvider); requestUpstreamNetwork(); + requestThreadNetwork(); initializeOtDaemon(); }); @@ -413,9 +414,10 @@ final class ThreadNetworkControllerService extends IThreadNetworkController.Stub private void requestThreadNetwork() { mConnectivityManager.registerNetworkCallback( new NetworkRequest.Builder() + // clearCapabilities() is needed to remove forbidden capabilities and UID + // requirement. .clearCapabilities() .addTransportType(NetworkCapabilities.TRANSPORT_THREAD) - .removeForbiddenCapability(NetworkCapabilities.NET_CAPABILITY_LOCAL_NETWORK) .build(), new ThreadNetworkCallback(), mHandler); @@ -459,8 +461,6 @@ final class ThreadNetworkControllerService extends IThreadNetworkController.Stub return; } - requestThreadNetwork(); - mNetworkAgent = newNetworkAgent(); mNetworkAgent.register(); mNetworkAgent.markConnected();