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

new gfw list

parent 9296f7c6
This diff is collapsed.
......@@ -78,52 +78,5 @@
here:\ngithub.com/shadowsocks
</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>
......@@ -56,6 +56,7 @@ import java.net.Inet6Address
import java.net.InetAddress
import java.net.UnknownHostException
import android.net.VpnService
import org.apache.http.conn.util.InetAddressUtils
object ShadowVpnService {
def isServiceStarted: Boolean = {
......@@ -229,7 +230,6 @@ class ShadowVpnService extends VpnService {
def startVpn() {
val prefix = appHost.substring(0, appHost.indexOf('.')).toInt
val builder = new Builder()
builder
.setSession(getString(R.string.app_name))
......@@ -237,9 +237,21 @@ class ShadowVpnService extends VpnService {
.addAddress("172.16.0.1", 24)
.addDnsServer("8.8.8.8")
for (i <- 1 to 254) {
if (i != prefix && i != 127
&& i != 172 && i != 192 && i != 10) builder.addRoute(i + ".0.0.0", 8)
if (InetAddressUtils.isIPv6Address(appHost)) {
builder.addRoute("0.0.0.0", 0)
} 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()
......
......@@ -313,6 +313,28 @@ class Shadowsocks extends UnifiedSherlockPreferenceActivity with CompoundButton.
}
}.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 = {
......@@ -362,29 +384,6 @@ class Shadowsocks extends UnifiedSherlockPreferenceActivity with CompoundButton.
protected override def onResume() {
super.onResume()
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()
switchButton.setOnCheckedChangeListener(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