From 04c10d4e1242974cd9992f0088daa3eb981c746a Mon Sep 17 00:00:00 2001 From: Max Lv Date: Thu, 20 Jun 2013 14:00:18 +0800 Subject: [PATCH] refine service destroy --- .../scala/com/github/shadowsocks/ShadowVpnService.scala | 5 ++--- .../scala/com/github/shadowsocks/ShadowsocksService.scala | 7 +++---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/main/scala/com/github/shadowsocks/ShadowVpnService.scala b/src/main/scala/com/github/shadowsocks/ShadowVpnService.scala index 9fdc38b2..5bf33c75 100644 --- a/src/main/scala/com/github/shadowsocks/ShadowVpnService.scala +++ b/src/main/scala/com/github/shadowsocks/ShadowVpnService.scala @@ -372,15 +372,14 @@ class ShadowVpnService extends VpnService { } def destroy() { + killProcesses() + changeState(State.STOPPED) EasyTracker.getTracker.sendEvent(TAG, "stop", getVersionName, 0L) if (receiver != null) { unregisterReceiver(receiver) receiver = null } - spawn { - killProcesses() - } if (conn != null) { conn.close() conn = null diff --git a/src/main/scala/com/github/shadowsocks/ShadowsocksService.scala b/src/main/scala/com/github/shadowsocks/ShadowsocksService.scala index a4984b99..4e153958 100644 --- a/src/main/scala/com/github/shadowsocks/ShadowsocksService.scala +++ b/src/main/scala/com/github/shadowsocks/ShadowsocksService.scala @@ -443,15 +443,14 @@ class ShadowsocksService extends Service { } // reset NAT - Utils.runRootCommand(Utils.getIptables + " -t nat -F OUTPUT") - spawn { - killProcesses() - } + killProcesses() super.onDestroy() } def killProcesses() { + Utils.runRootCommand(Utils.getIptables + " -t nat -F OUTPUT") + val sb = new StringBuilder sb ++= "kill -9 `cat /data/data/com.github.shadowsocks/redsocks.pid`" ++= "\n"