- Added Bind Address configuration variable.
This commit is contained in:
@@ -16,6 +16,7 @@ class ConfigActivity : AppCompatActivity() {
|
||||
|
||||
internal lateinit var autoStart: CheckBox
|
||||
internal lateinit var listenAddr: EditText
|
||||
internal lateinit var bindAddr: EditText
|
||||
internal lateinit var preferIPv6: CheckBox
|
||||
internal lateinit var dnsServers: EditText
|
||||
internal lateinit var certificateFile: CheckBox
|
||||
@@ -29,6 +30,7 @@ class ConfigActivity : AppCompatActivity() {
|
||||
|
||||
private var oldAutoStart = ""
|
||||
private var oldListenAddr = ""
|
||||
private var oldBindAddr = ""
|
||||
private var oldPreferIPv6 = ""
|
||||
private var oldDnsServers = ""
|
||||
private var oldCertificateFile = false
|
||||
@@ -59,6 +61,11 @@ class ConfigActivity : AppCompatActivity() {
|
||||
oldListenAddr = if (laCv.size == 0) "" else laCv[0]
|
||||
listenAddr.setText(oldListenAddr)
|
||||
|
||||
bindAddr = findViewById(R.id.BindAddress) as EditText
|
||||
val baCv = Config.variable("net_interface")
|
||||
oldBindAddr = if (baCv.size == 0) "" else baCv[0]
|
||||
bindAddr.setText(oldBindAddr)
|
||||
|
||||
preferIPv6 = findViewById(R.id.PreferIPv6) as CheckBox
|
||||
val piCv = Config.variable("net_prefer_ipv6")
|
||||
oldPreferIPv6 = if (piCv.size == 0) "no" else piCv[0]
|
||||
@@ -177,6 +184,19 @@ class ConfigActivity : AppCompatActivity() {
|
||||
restart = true
|
||||
}
|
||||
|
||||
val bindAddr = bindAddr.text.toString().trim()
|
||||
if (bindAddr != oldBindAddr) {
|
||||
if ((bindAddr != "") && !Utils.checkIp(bindAddr) && !Utils.checkIfName(bindAddr)) {
|
||||
Utils.alertView(this, getString(R.string.notice),
|
||||
"${getString(R.string.invalid_bind_address)}: $bindAddr")
|
||||
return false
|
||||
}
|
||||
Config.remove("net_interface")
|
||||
if (bindAddr != "") Config.add("net_interface", bindAddr)
|
||||
save = true
|
||||
restart = true
|
||||
}
|
||||
|
||||
var preferIPv6String = "no"
|
||||
if (preferIPv6.isChecked) preferIPv6String = "yes"
|
||||
if (oldPreferIPv6 != preferIPv6String) {
|
||||
@@ -375,6 +395,10 @@ class ConfigActivity : AppCompatActivity() {
|
||||
Utils.alertView(this, getString(R.string.listen_address),
|
||||
getString(R.string.listen_address_help))
|
||||
}
|
||||
findViewById(R.id.BindAddressTitle) as TextView-> {
|
||||
Utils.alertView(this, getString(R.string.bind_address),
|
||||
getString(R.string.bind_address_help))
|
||||
}
|
||||
findViewById(R.id.PreferIPv6Title) as TextView-> {
|
||||
Utils.alertView(this, getString(R.string.prefer_ipv6),
|
||||
getString(R.string.prefer_ipv6_help))
|
||||
|
||||
@@ -110,7 +110,7 @@ object Utils {
|
||||
checkIpV6(bracketedIp.substring(1, bracketedIp.length - 2))
|
||||
}
|
||||
|
||||
private fun checkIp(ip: String): Boolean {
|
||||
fun checkIp(ip: String): Boolean {
|
||||
return checkIpV4(ip) || checkIpV6(ip)
|
||||
}
|
||||
|
||||
@@ -215,6 +215,13 @@ object Utils {
|
||||
return true
|
||||
}
|
||||
|
||||
fun checkIfName(name: String): Boolean {
|
||||
if ((name.length < 2) || !name.first().isLetter()) return false
|
||||
for (c in name)
|
||||
if (!c.isLetterOrDigit()) return false
|
||||
return true
|
||||
}
|
||||
|
||||
fun implode(list: List<String>, sep: String): String {
|
||||
var res = ""
|
||||
for (s in list) {
|
||||
|
||||
Reference in New Issue
Block a user