- Added Bind Address configuration variable.

This commit is contained in:
Juha Heinanen
2019-10-14 11:00:54 +03:00
parent 8963ef284c
commit 5020893450
5 changed files with 63 additions and 1 deletions

View File

@ -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))

View File

@ -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) {

View File

@ -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"

View File

@ -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>

View File

@ -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>