Commit 40447ce1 authored by Mygod's avatar Mygod

Refine fetching ACL from cloud

parent 4162057a
...@@ -41,7 +41,6 @@ libraryDependencies ++= Seq( ...@@ -41,7 +41,6 @@ libraryDependencies ++= Seq(
"com.github.kevinsawicki" % "http-request" % "6.0", "com.github.kevinsawicki" % "http-request" % "6.0",
"com.google.android.gms" % "play-services-ads" % "9.6.1", "com.google.android.gms" % "play-services-ads" % "9.6.1",
"com.google.android.gms" % "play-services-analytics" % "9.6.1", "com.google.android.gms" % "play-services-analytics" % "9.6.1",
"com.google.firebase" % "firebase-core" % "9.6.1",
"com.google.firebase" % "firebase-storage" % "9.6.1", "com.google.firebase" % "firebase-storage" % "9.6.1",
"com.j256.ormlite" % "ormlite-android" % "5.0", "com.j256.ormlite" % "ormlite-android" % "5.0",
"com.twofortyfouram" % "android-plugin-api-for-locale" % "1.0.2", "com.twofortyfouram" % "android-plugin-api-for-locale" % "1.0.2",
......
...@@ -39,8 +39,7 @@ ...@@ -39,8 +39,7 @@
package com.github.shadowsocks package com.github.shadowsocks
import java.io.File import java.io.{File, IOException}
import java.io.IOException
import java.util.{Timer, TimerTask} import java.util.{Timer, TimerTask}
import android.app.Service import android.app.Service
...@@ -51,13 +50,11 @@ import android.text.TextUtils ...@@ -51,13 +50,11 @@ import android.text.TextUtils
import android.util.Log import android.util.Log
import android.widget.Toast import android.widget.Toast
import com.github.kevinsawicki.http.HttpRequest import com.github.kevinsawicki.http.HttpRequest
import com.github.shadowsocks.aidl.{IShadowsocksService, IShadowsocksServiceCallback}
import com.github.shadowsocks.utils._
import com.github.shadowsocks.ShadowsocksApplication.app import com.github.shadowsocks.ShadowsocksApplication.app
import com.github.shadowsocks.aidl.{IShadowsocksService, IShadowsocksServiceCallback}
import com.github.shadowsocks.database.Profile import com.github.shadowsocks.database.Profile
import com.github.shadowsocks.utils._
import com.google.firebase.FirebaseApp import com.google.firebase.FirebaseApp
import com.google.firebase.storage.FileDownloadTask
import com.google.firebase.storage.FirebaseStorage import com.google.firebase.storage.FirebaseStorage
trait BaseService extends Service { trait BaseService extends Service {
...@@ -318,7 +315,7 @@ trait BaseService extends Service { ...@@ -318,7 +315,7 @@ trait BaseService extends Service {
} }
} }
def getAcl(route: String) { def fetchAcl(route: String) {
val localAcl = route match { val localAcl = route match {
case Route.BYPASS_LAN => "bypass_lan.acl" case Route.BYPASS_LAN => "bypass_lan.acl"
case Route.BYPASS_CHN => "bypass_chn.acl" case Route.BYPASS_CHN => "bypass_chn.acl"
...@@ -334,11 +331,16 @@ trait BaseService extends Service { ...@@ -334,11 +331,16 @@ trait BaseService extends Service {
val aclRef = storageRef.child(localAcl) val aclRef = storageRef.child(localAcl)
val task = aclRef.getFile(tempFile) val task = aclRef.getFile(tempFile)
task.addOnSuccessListener((_) => { task.addOnSuccessListener(_ => {
tempFile.renameTo(cloudAclFile) if (!tempFile.renameTo(cloudAclFile)) {
Log.d("shadowsocks", "Failed to rename acl file")
if (!tempFile.delete()) tempFile.deleteOnExit()
}
return return
}) })
task.addOnFailureListener((_) => Log.e("shadowsocks", "Unable to download " + localAcl)) task.addOnFailureListener(_ => {
tempFile.deleteOnExit() Log.e("shadowsocks", "Unable to download " + localAcl)
if (!tempFile.delete()) tempFile.deleteOnExit()
})
} }
} }
...@@ -339,7 +339,7 @@ class ShadowsocksNatService extends BaseService { ...@@ -339,7 +339,7 @@ class ShadowsocksNatService extends BaseService {
handleConnection() handleConnection()
// lazily get ACL from cloud // lazily get ACL from cloud
getAcl(profile.route) fetchAcl(profile.route)
changeState(State.CONNECTED) changeState(State.CONNECTED)
notification = new ShadowsocksNotification(this, profile.name, true) notification = new ShadowsocksNotification(this, profile.name, true)
......
...@@ -164,7 +164,7 @@ class ShadowsocksVpnService extends VpnService with BaseService { ...@@ -164,7 +164,7 @@ class ShadowsocksVpnService extends VpnService with BaseService {
changeState(State.CONNECTED) changeState(State.CONNECTED)
// lazily get ACL from cloud // lazily get ACL from cloud
getAcl(profile.route) fetchAcl(profile.route)
notification = new ShadowsocksNotification(this, profile.name) notification = new ShadowsocksNotification(this, profile.name)
} }
......
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