Commit 9f2052e1 authored by Max Lv's avatar Max Lv

new gfw list

parent 9296f7c6
This diff is collapsed.
...@@ -78,52 +78,5 @@ ...@@ -78,52 +78,5 @@
here:\ngithub.com/shadowsocks here:\ngithub.com/shadowsocks
</string> </string>
<!-- array category -->
<string-array name="chn_list">
<item>0.0.0.0/7</item>
<item>10.0.0.0/8</item>
<item>14.0.0.0/8</item>
<item>27.0.0.0/8</item>
<item>36.0.0.0/8</item>
<item>39.0.0.0/8</item>
<item>42.0.0.0/7</item>
<item>49.0.0.0/8</item>
<item>58.0.0.0/7</item>
<item>60.0.0.0/7</item>
<item>101.0.0.0/8</item>
<item>103.0.0.0/8</item>
<item>106.0.0.0/8</item>
<item>110.0.0.0/7</item>
<item>112.0.0.0/4</item>
<item>134.128.0.0/9</item>
<item>139.0.0.0/9</item>
<item>139.128.0.0/9</item>
<item>140.0.0.0/9</item>
<item>140.128.0.0/9</item>
<item>144.0.0.0/9</item>
<item>144.128.0.0/9</item>
<item>150.0.0.0/8</item>
<item>153.0.0.0/8</item>
<item>157.0.0.0/9</item>
<item>157.128.0.0/9</item>
<item>159.128.0.0/9</item>
<item>161.128.0.0/9</item>
<item>162.0.0.0/9</item>
<item>163.0.0.0/8</item>
<item>166.0.0.0/9</item>
<item>167.128.0.0/9</item>
<item>168.128.0.0/9</item>
<item>171.0.0.0/8</item>
<item>172.0.0.0/12</item>
<item>175.0.0.0/8</item>
<item>180.0.0.0/8</item>
<item>182.0.0.0/7</item>
<item>192.112.0.0/12</item>
<item>192.128.0.0/9</item>
<item>202.0.0.0/7</item>
<item>210.0.0.0/7</item>
<item>218.0.0.0/7</item>
<item>220.0.0.0/6</item>
</string-array>
</resources> </resources>
...@@ -56,6 +56,7 @@ import java.net.Inet6Address ...@@ -56,6 +56,7 @@ import java.net.Inet6Address
import java.net.InetAddress import java.net.InetAddress
import java.net.UnknownHostException import java.net.UnknownHostException
import android.net.VpnService import android.net.VpnService
import org.apache.http.conn.util.InetAddressUtils
object ShadowVpnService { object ShadowVpnService {
def isServiceStarted: Boolean = { def isServiceStarted: Boolean = {
...@@ -229,7 +230,6 @@ class ShadowVpnService extends VpnService { ...@@ -229,7 +230,6 @@ class ShadowVpnService extends VpnService {
def startVpn() { def startVpn() {
val prefix = appHost.substring(0, appHost.indexOf('.')).toInt
val builder = new Builder() val builder = new Builder()
builder builder
.setSession(getString(R.string.app_name)) .setSession(getString(R.string.app_name))
...@@ -237,9 +237,21 @@ class ShadowVpnService extends VpnService { ...@@ -237,9 +237,21 @@ class ShadowVpnService extends VpnService {
.addAddress("172.16.0.1", 24) .addAddress("172.16.0.1", 24)
.addDnsServer("8.8.8.8") .addDnsServer("8.8.8.8")
for (i <- 1 to 254) { if (InetAddressUtils.isIPv6Address(appHost)) {
if (i != prefix && i != 127 builder.addRoute("0.0.0.0", 0)
&& i != 172 && i != 192 && i != 10) builder.addRoute(i + ".0.0.0", 8) } else if (isGFWList) {
val gfwList = getResources.getStringArray(R.array.gfw_list)
val address = appHost.split('.')
val prefix = address(0) + "." + address(1)
gfwList.foreach(addr =>
if (addr != prefix) builder.addRoute(prefix + ".0.0", 16)
)
} else {
val prefix = appHost.split('.')(0).toInt
for (i <- 1 to 254) {
if (i != prefix && i != 127
&& i != 172 && i != 192 && i != 10) builder.addRoute(i + ".0.0.0", 8)
}
} }
conn = builder.establish() conn = builder.establish()
......
...@@ -313,6 +313,28 @@ class Shadowsocks extends UnifiedSherlockPreferenceActivity with CompoundButton. ...@@ -313,6 +313,28 @@ class Shadowsocks extends UnifiedSherlockPreferenceActivity with CompoundButton.
} }
}.start() }.start()
} }
if (isServiceStarted) {
switchButton.setChecked(true)
if (ShadowVpnService.isServiceStarted) {
val style = new Style.Builder()
.setBackgroundColorValue(Style.holoBlueLight)
.setDuration(Style.DURATION_INFINITE)
.build()
switchButton.setEnabled(false)
Crouton.makeText(Shadowsocks.this, R.string.vpn_status, style).show()
}
} else {
switchButton.setChecked(false)
if (settings.getBoolean("isRunning", false)) {
new Thread {
override def run() {
crash_recovery()
handler.sendEmptyMessage(MSG_CRASH_RECOVER)
}
}.start()
}
}
} }
override def onCreateOptionsMenu(menu: Menu): Boolean = { override def onCreateOptionsMenu(menu: Menu): Boolean = {
...@@ -362,29 +384,6 @@ class Shadowsocks extends UnifiedSherlockPreferenceActivity with CompoundButton. ...@@ -362,29 +384,6 @@ class Shadowsocks extends UnifiedSherlockPreferenceActivity with CompoundButton.
protected override def onResume() { protected override def onResume() {
super.onResume() super.onResume()
val settings: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(this) val settings: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
if (getIntent.getAction != Shadowsocks.REQUEST_CONNECT) {
if (isServiceStarted) {
switchButton.setChecked(true)
if (ShadowVpnService.isServiceStarted) {
val style = new Style.Builder()
.setBackgroundColorValue(Style.holoBlueLight)
.setDuration(Style.DURATION_INFINITE)
.build()
switchButton.setEnabled(false)
Crouton.makeText(Shadowsocks.this, R.string.vpn_status, style).show()
}
} else {
switchButton.setChecked(false)
if (settings.getBoolean("isRunning", false)) {
new Thread {
override def run() {
crash_recovery()
handler.sendEmptyMessage(MSG_CRASH_RECOVER)
}
}.start()
}
}
}
setPreferenceEnabled() setPreferenceEnabled()
switchButton.setOnCheckedChangeListener(this) switchButton.setOnCheckedChangeListener(this)
PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this) PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment