Avoid failing when multiple interface address was found
This commit is contained in:
@@ -11,6 +11,7 @@ import be.mygod.vpnhotspot.room.AppDatabase
|
||||
import be.mygod.vpnhotspot.util.RootSession
|
||||
import be.mygod.vpnhotspot.util.computeIfAbsentCompat
|
||||
import be.mygod.vpnhotspot.widget.SmartSnackbar
|
||||
import com.crashlytics.android.Crashlytics
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import timber.log.Timber
|
||||
import java.io.IOException
|
||||
@@ -91,7 +92,12 @@ class Routing(private val caller: Any, private val downstream: String) : IpNeigh
|
||||
}
|
||||
|
||||
private val hostAddress = try {
|
||||
NetworkInterface.getByName(downstream)!!.interfaceAddresses!!.asSequence().single { it.address is Inet4Address }
|
||||
val addresses = NetworkInterface.getByName(downstream)!!.interfaceAddresses!!
|
||||
.filter { it.address is Inet4Address }
|
||||
if (addresses.size > 1) {
|
||||
Crashlytics.logException(IllegalArgumentException("More than one addresses was found: $addresses"))
|
||||
}
|
||||
addresses.first()
|
||||
} catch (e: Exception) {
|
||||
throw InterfaceNotFoundException(e)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user