diff options
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt b/android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt index e2ea8c5818..a36e0b1db6 100644 --- a/android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt +++ b/android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt @@ -1,6 +1,9 @@ package net.mullvad.talpid import android.net.VpnService +import java.net.Inet4Address +import java.net.Inet6Address +import java.net.InetAddress import net.mullvad.talpid.tun_provider.TunConfig open class TalpidVpnService : VpnService() { @@ -17,7 +20,7 @@ open class TalpidVpnService : VpnService() { fun createTun(config: TunConfig): Int { val builder = Builder().apply { for (address in config.addresses) { - addAddress(address, 32) + addAddress(address, prefixForAddress(address)) } for (dnsServer in config.dnsServers) { @@ -40,4 +43,12 @@ open class TalpidVpnService : VpnService() { fun bypass(socket: Int): Boolean { return protect(socket) } + + private fun prefixForAddress(address: InetAddress): Int { + when (address) { + is Inet4Address -> return 32 + is Inet6Address -> return 128 + else -> throw RuntimeException("Invalid IP address (not IPv4 nor IPv6)") + } + } } |
