mirror of
https://github.com/M66B/NetGuard.git
synced 2024-12-24 08:45:53 +00:00
Workaround handover problems
This commit is contained in:
parent
22f3d0766a
commit
e613966d35
2 changed files with 16 additions and 4 deletions
|
@ -66,6 +66,7 @@
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/renderscript" isTestSource="true" />
|
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/renderscript" isTestSource="true" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes-proguard" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/debug" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/debug" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
|
||||||
|
@ -75,6 +76,8 @@
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard-rules" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/release" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
|
||||||
|
|
|
@ -86,6 +86,9 @@ public class SinkholeService extends VpnService {
|
||||||
public void handleMessage(Message msg) {
|
public void handleMessage(Message msg) {
|
||||||
try {
|
try {
|
||||||
handleIntent((Intent) msg.obj);
|
handleIntent((Intent) msg.obj);
|
||||||
|
} catch (Throwable ex) {
|
||||||
|
Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
|
||||||
|
Util.sendCrashReport(ex, SinkholeService.this);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
try {
|
||||||
PowerManager.WakeLock wl = getLock(SinkholeService.this);
|
PowerManager.WakeLock wl = getLock(SinkholeService.this);
|
||||||
|
@ -116,6 +119,15 @@ public class SinkholeService extends VpnService {
|
||||||
// Seamless handover
|
// Seamless handover
|
||||||
ParcelFileDescriptor prev = vpn;
|
ParcelFileDescriptor prev = vpn;
|
||||||
vpn = startVPN();
|
vpn = startVPN();
|
||||||
|
if (prev != null && vpn == null) {
|
||||||
|
Log.w(TAG, "Handover failed");
|
||||||
|
stopDebug();
|
||||||
|
stopVPN(prev);
|
||||||
|
prev = null;
|
||||||
|
vpn = startVPN();
|
||||||
|
if (vpn == null)
|
||||||
|
throw new IllegalStateException("Handover failed");
|
||||||
|
}
|
||||||
stopDebug();
|
stopDebug();
|
||||||
startDebug(vpn);
|
startDebug(vpn);
|
||||||
if (prev != null)
|
if (prev != null)
|
||||||
|
@ -197,10 +209,7 @@ public class SinkholeService extends VpnService {
|
||||||
|
|
||||||
// Start VPN service
|
// Start VPN service
|
||||||
try {
|
try {
|
||||||
ParcelFileDescriptor result = builder.establish();
|
return builder.establish();
|
||||||
if (result == null)
|
|
||||||
throw new IllegalStateException("VpnService.Builder.establish returned unexpectedly NULL");
|
|
||||||
return result;
|
|
||||||
|
|
||||||
} catch (Throwable ex) {
|
} catch (Throwable ex) {
|
||||||
Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
|
Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
|
||||||
|
|
Loading…
Reference in a new issue