mirror of
https://github.com/emanuele-f/PCAPdroid.git
synced 2026-07-03 21:21:12 +08:00
Fix TooManyRequestsException with NetworkCallbacks
On multiple capture start/stop, a TooManyRequestsException could be thrown because the registered NetworkCallback was not unregistered, causing leaks
This commit is contained in:
parent
a9a06a6f3f
commit
42c9ec389e
@ -545,6 +545,8 @@ public class CaptureService extends VpnService implements Runnable {
|
||||
// after the capture is stopped
|
||||
//INSTANCE = null;
|
||||
|
||||
unregisterNetworkCallbacks();
|
||||
|
||||
if(mCaptureThread != null)
|
||||
mCaptureThread.interrupt();
|
||||
if(mBlacklistsUpdateThread != null)
|
||||
@ -702,6 +704,7 @@ public class CaptureService extends VpnService implements Runnable {
|
||||
};
|
||||
|
||||
try {
|
||||
Log.d(TAG, "registerNetworkCallback");
|
||||
cm.registerNetworkCallback(
|
||||
new NetworkRequest.Builder()
|
||||
.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET).build(),
|
||||
@ -721,6 +724,7 @@ public class CaptureService extends VpnService implements Runnable {
|
||||
ConnectivityManager cm = (ConnectivityManager) getSystemService(Service.CONNECTIVITY_SERVICE);
|
||||
|
||||
try {
|
||||
Log.d(TAG, "unregisterNetworkCallback");
|
||||
cm.unregisterNetworkCallback(mNetworkCallback);
|
||||
} catch(IllegalArgumentException e) {
|
||||
Log.w(TAG, "unregisterNetworkCallback failed: " + e);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user