Commit b77a599e authored by Max Lv's avatar Max Lv

refine proxy list refresing

parent 93a26969
...@@ -2,7 +2,8 @@ libraryDependencies ++= Seq( ...@@ -2,7 +2,8 @@ libraryDependencies ++= Seq(
"com.google.android" % "support-v4" % "r12", "com.google.android" % "support-v4" % "r12",
"com.google.android" % "analytics" % "3.01", "com.google.android" % "analytics" % "3.01",
"com.google.android" % "admob" % "6.4.1", "com.google.android" % "admob" % "6.4.1",
"dnsjava" % "dnsjava" % "2.1.5" "dnsjava" % "dnsjava" % "2.1.5",
"org.scalaj" %% "scalaj-http" % "0.3.10"
) )
libraryDependencies ++= Seq( libraryDependencies ++= Seq(
......
...@@ -191,13 +191,15 @@ class ShadowVpnService extends VpnService { ...@@ -191,13 +191,15 @@ class ShadowVpnService extends VpnService {
if (config.proxy == "198.199.101.152") { if (config.proxy == "198.199.101.152") {
val container = getApplication.asInstanceOf[ShadowsocksApplication].tagContainer val container = getApplication.asInstanceOf[ShadowsocksApplication].tagContainer
if (container == null) { try {
notifyAlert(getString(R.string.forward_fail), getString(R.string.service_failed))
stopSelf()
handler.sendEmptyMessageDelayed(MSG_CONNECT_FAIL, 500)
return
} else {
config = Config.getPublicConfig(container, config) config = Config.getPublicConfig(container, config)
} catch {
case ex: Exception => {
notifyAlert(getString(R.string.forward_fail), getString(R.string.service_failed))
stopSelf()
handler.sendEmptyMessageDelayed(MSG_CONNECT_FAIL, 500)
return
}
} }
} }
......
...@@ -227,13 +227,15 @@ class ShadowsocksService extends Service { ...@@ -227,13 +227,15 @@ class ShadowsocksService extends Service {
if (config.proxy == "198.199.101.152") { if (config.proxy == "198.199.101.152") {
val container = getApplication.asInstanceOf[ShadowsocksApplication].tagContainer val container = getApplication.asInstanceOf[ShadowsocksApplication].tagContainer
if (container == null) { try {
notifyAlert(getString(R.string.forward_fail), getString(R.string.service_failed))
stopSelf()
handler.sendEmptyMessageDelayed(MSG_CONNECT_FAIL, 500)
return
} else {
config = Config.getPublicConfig(container, config) config = Config.getPublicConfig(container, config)
} catch {
case ex: Exception => {
notifyAlert(getString(R.string.forward_fail), getString(R.string.service_failed))
stopSelf()
handler.sendEmptyMessageDelayed(MSG_CONNECT_FAIL, 500)
return
}
} }
} }
......
...@@ -53,6 +53,7 @@ import android.app.ActivityManager ...@@ -53,6 +53,7 @@ import android.app.ActivityManager
import android.os.Build import android.os.Build
import android.provider.Settings import android.provider.Settings
import scala.Some import scala.Some
import scalaj.http.{Http, HttpOptions}
import com.google.tagmanager.Container import com.google.tagmanager.Container
object Config { object Config {
...@@ -117,7 +118,8 @@ object Config { ...@@ -117,7 +118,8 @@ object Config {
} }
def getPublicConfig(container: Container, config: Config): Config = { def getPublicConfig(container: Container, config: Config): Config = {
val list = container.getString("proxy_list") val url = container.getString("proxy_url")
val list = Http(url).option(HttpOptions.connTimeout(1000)).option(HttpOptions.readTimeout(5000)).asString
val proxies = util.Random.shuffle(list.split('|').toSeq).toSeq val proxies = util.Random.shuffle(list.split('|').toSeq).toSeq
val proxy = proxies(0).split(':') val proxy = proxies(0).split(':')
......
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