Commit a69183cc authored by Max Lv's avatar Max Lv

Move all network rules to new block

parent 62a0bb59
......@@ -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,16 +94,17 @@ 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")
}
}
if (result.isEmpty) {
result.append(if (bypass) "[bypass_all]\n" else "[proxy_all]\n")
}
......
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