From 3b6eff6d9d94de91e5a157035ca788438253dd0b Mon Sep 17 00:00:00 2001 From: Max Lv Date: Wed, 28 Sep 2016 14:36:36 +0800 Subject: [PATCH] Fix #905 --- src/main/AndroidManifest.xml | 4 ++-- src/main/res/values/arrays.xml | 1 - .../com/github/shadowsocks/ShadowsocksNatService.scala | 10 +++++++--- .../com/github/shadowsocks/ShadowsocksVpnService.scala | 10 ++++++---- .../scala/com/github/shadowsocks/utils/Constants.scala | 8 ++++---- 5 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index 8d48cf44..f2e5454c 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ + android:versionCode="161" + android:versionName="3.2.1"> diff --git a/src/main/res/values/arrays.xml b/src/main/res/values/arrays.xml index 94922057..a798c4ca 100644 --- a/src/main/res/values/arrays.xml +++ b/src/main/res/values/arrays.xml @@ -116,6 +116,5 @@ 196.0.0.0/6 200.0.0.0/5 208.0.0.0/4 - 224.0.0.0/3 diff --git a/src/main/scala/com/github/shadowsocks/ShadowsocksNatService.scala b/src/main/scala/com/github/shadowsocks/ShadowsocksNatService.scala index 095f8ef4..24dc5b4c 100644 --- a/src/main/scala/com/github/shadowsocks/ShadowsocksNatService.scala +++ b/src/main/scala/com/github/shadowsocks/ShadowsocksNatService.scala @@ -178,18 +178,22 @@ class ShadowsocksNatService extends BaseService { def startDnsDaemon() { + val reject = if (profile.ipv6) "224.0.0.0/3" else "224.0.0.0/3, ::/0" + val conf = profile.route match { case Route.BYPASS_CHN | Route.BYPASS_LAN_CHN | Route.GFWLIST => { ConfigUtils.PDNSD_DIRECT.formatLocal(Locale.ENGLISH, getApplicationInfo.dataDir, - "127.0.0.1", profile.localPort + 53, "1.2.4.8, 114.114.114.114", "", profile.localPort + 63, "") + "127.0.0.1", profile.localPort + 53, "1.2.4.8, 114.114.114.114", + reject, profile.localPort + 63, reject) } case Route.CHINALIST => { ConfigUtils.PDNSD_DIRECT.formatLocal(Locale.ENGLISH, getApplicationInfo.dataDir, - "127.0.0.1", profile.localPort + 53, "8.8.8.8, 208.67.222.222", "", profile.localPort + 63, "") + "127.0.0.1", profile.localPort + 53, "8.8.8.8, 208.67.222.222", + reject, profile.localPort + 63, reject) } case _ => { ConfigUtils.PDNSD_LOCAL.formatLocal(Locale.ENGLISH, getApplicationInfo.dataDir, - "127.0.0.1", profile.localPort + 53, profile.localPort + 63, "") + "127.0.0.1", profile.localPort + 53, profile.localPort + 63, reject) } } diff --git a/src/main/scala/com/github/shadowsocks/ShadowsocksVpnService.scala b/src/main/scala/com/github/shadowsocks/ShadowsocksVpnService.scala index 463a867b..292a5c7c 100644 --- a/src/main/scala/com/github/shadowsocks/ShadowsocksVpnService.scala +++ b/src/main/scala/com/github/shadowsocks/ShadowsocksVpnService.scala @@ -296,19 +296,21 @@ class ShadowsocksVpnService extends VpnService with BaseService { } def startDnsDaemon() { - val ipv6 = if (profile.ipv6) "" else "reject = ::/0;" + val reject = if (profile.ipv6) "224.0.0.0/3" else "224.0.0.0/3, ::/0" val conf = profile.route match { case Route.BYPASS_CHN | Route.BYPASS_LAN_CHN | Route.GFWLIST => { ConfigUtils.PDNSD_DIRECT.formatLocal(Locale.ENGLISH, getApplicationInfo.dataDir, - "0.0.0.0", profile.localPort + 53, "1.2.4.8, 114.114.114.114", ipv6, profile.localPort + 63, ipv6) + "0.0.0.0", profile.localPort + 53, "1.2.4.8, 114.114.114.114", + reject, profile.localPort + 63, reject) } case Route.CHINALIST => { ConfigUtils.PDNSD_DIRECT.formatLocal(Locale.ENGLISH, getApplicationInfo.dataDir, - "0.0.0.0", profile.localPort + 53, "8.8.8.8, 208.67.222.222", ipv6, profile.localPort + 63, ipv6) + "0.0.0.0", profile.localPort + 53, "8.8.8.8, 208.67.222.222", + reject, profile.localPort + 63, reject) } case _ => { ConfigUtils.PDNSD_LOCAL.formatLocal(Locale.ENGLISH, getApplicationInfo.dataDir, - "0.0.0.0", profile.localPort + 53, profile.localPort + 63, ipv6) + "0.0.0.0", profile.localPort + 53, profile.localPort + 63, reject) } } Utils.printToFile(new File(getApplicationInfo.dataDir + "/pdnsd-vpn.conf"))(p => { diff --git a/src/main/scala/com/github/shadowsocks/utils/Constants.scala b/src/main/scala/com/github/shadowsocks/utils/Constants.scala index c8fdce1f..d2197ccd 100644 --- a/src/main/scala/com/github/shadowsocks/utils/Constants.scala +++ b/src/main/scala/com/github/shadowsocks/utils/Constants.scala @@ -83,7 +83,7 @@ object ConfigUtils { | label = "local"; | ip = 127.0.0.1; | port = %d; - | %s + | reject = %s; | reject_policy = negate; | reject_recursively = on; |} @@ -117,8 +117,8 @@ object ConfigUtils { | ip = %s; | timeout = 3; | query_method = udp_only; - | %s - | reject_policy = negate; + | reject = %s; + | reject_policy = fail; | reject_recursively = on; |} | @@ -127,7 +127,7 @@ object ConfigUtils { | ip = 127.0.0.1; | query_method = tcp_only; | port = %d; - | %s + | reject = %s; | reject_policy = negate; | reject_recursively = on; |}