- 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) {
|
||||
|
||||
@ -64,6 +64,26 @@
|
||||
android:importantForAutofill="no" >
|
||||
</EditText>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/BindAddressTitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:onClick="onClick"
|
||||
android:text="@string/bind_address"
|
||||
android:textColor="@android:color/black"
|
||||
android:textSize="18sp" >
|
||||
</TextView>
|
||||
|
||||
<EditText
|
||||
android:id="@+id/BindAddress"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:textSize="18sp"
|
||||
android:inputType="textUri"
|
||||
android:importantForAutofill="no" >
|
||||
</EditText>
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
@ -169,6 +169,12 @@
|
||||
osoitteilla.
|
||||
</string>
|
||||
<string name="invalid_listen_address">Virheellinen kuunteluosoite</string>
|
||||
<string name="bind_address">Verkko-osoite</string>
|
||||
<string name="bind_address_help">Verkkoliitännän nimi tai IP-osoite,
|
||||
jota baresip käyttää lähdeliitäntänä tai -osoitteena. Normaalisti
|
||||
tätä ei tarvitse asettaa.
|
||||
</string>
|
||||
<string name="invalid_bind_address">Virheellinen verkko-osoite</string>
|
||||
<string name="prefer_ipv6">Suosi IPv6-protokollaa</string>
|
||||
<string name="prefer_ipv6_help">Jos merkitty, baresip suosii
|
||||
IPv6-protokollaa, mikäli sekä IPv4 että IPv6 ovat käytettävissä.</string>
|
||||
|
||||
@ -158,6 +158,11 @@
|
||||
</string>
|
||||
<string name="invalid_listen_address">Invalid Listen Address</string>
|
||||
<string name="_0_0_0_0_5060" translatable="false">0.0.0.0:5060</string>
|
||||
<string name="bind_address">Bind Address</string>
|
||||
<string name="bind_address_help">IP address or name of interface that baresip uses as source
|
||||
IP address. Usually there is no need to set this.
|
||||
</string>
|
||||
<string name="invalid_bind_address">Invalid Bind Address</string>
|
||||
<string name="prefer_ipv6">Prefer IPv6</string>
|
||||
<string name="prefer_ipv6_help">Prefer IPv6 if both IPv4 and IPv6 are available.</string>
|
||||
<string name="dns_servers">DNS Servers</string>
|
||||
|
||||
Reference in New Issue
Block a user