From a69183cc0f8e897d8bb680606fca7a90d1db2a37 Mon Sep 17 00:00:00 2001 From: Max Lv Date: Thu, 3 Aug 2017 22:15:49 +0800 Subject: [PATCH] Move all network rules to new block --- .../com/github/shadowsocks/acl/Acl.scala | 30 ++++--------------- 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/mobile/src/main/scala/com/github/shadowsocks/acl/Acl.scala b/mobile/src/main/scala/com/github/shadowsocks/acl/Acl.scala index b67f0d5e..1d54a7e7 100644 --- a/mobile/src/main/scala/com/github/shadowsocks/acl/Acl.scala +++ b/mobile/src/main/scala/com/github/shadowsocks/acl/Acl.scala @@ -27,25 +27,6 @@ class Acl { var bypass: Boolean = _ def isUrl(url: String): Boolean = url.startsWith("http://") || url.startsWith("https://") - def getBypassHostnamesString: String = bypassHostnames.mkString("\n") - def getProxyHostnamesString: String = proxyHostnames.mkString("\n") - def getSubnetsString: String = subnets.mkString("\n") - def setBypassHostnamesString(value: String) { - bypassHostnames.clear() - bypassHostnames ++= value.split("\n") - } - def setProxyHostnamesString(value: String) { - proxyHostnames.clear() - proxyHostnames ++= value.split("\n") - } - def setSubnetsString(value: String) { - subnets.clear() - subnets ++= value.split("\n").map(Subnet.fromString) - } - def setUrlRules(value: String) { - urls.clear() - urls ++= value.split("\n") - } def fromAcl(other: Acl): Acl = { bypassHostnames.clear() @@ -70,9 +51,8 @@ class Acl { var hostnames: mutable.SortedList[String] = if (defaultBypass) proxyHostnames else bypassHostnames var subnets: mutable.SortedList[Subnet] = if (defaultBypass) proxySubnets else bypassSubnets var in_urls = false - for (line <- value.getLines()) (line.indexOf('#') match { - case -1 => if (!in_urls) line else "" - case index => { + for (line <- value.getLines()) (line.trim.indexOf('#') match { + case 0 => { line.indexOf("NETWORK_ACL_BEGIN") match { case -1 => case index => in_urls = true @@ -83,6 +63,7 @@ class Acl { } "" // ignore any comment lines } + case index => if (!in_urls) line else "" }).trim match { case "[outbound_block_list]" => hostnames = null @@ -113,15 +94,16 @@ class Acl { val result = new StringBuilder() if (urls.nonEmpty) { result.append(urls.mkString("\n")) - result.append("#NETWORK_ACL_BEGIN\n") + result.append("\n") if (network) { + result.append("#NETWORK_ACL_BEGIN\n") try { urls.foreach((url: String) => result.append(Source.fromURL(url).mkString)) } catch { case e: IOException => // ignore } + result.append("#NETWORK_ACL_END\n") } - result.append("#NETWORK_ACL_END\n") } if (result.isEmpty) { result.append(if (bypass) "[bypass_all]\n" else "[proxy_all]\n")