diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-03-19 16:29:02 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-03-24 16:01:26 +0000 |
| commit | 4ad07b885eed42e2511b8dbcb59e24d366d26f75 (patch) | |
| tree | 9ec5f9a40ad2f7c6d7e508974d44c1c0ecea88cf /android/src/main | |
| parent | 3c54992c343097dcdb329f02e8fc51ca4866796c (diff) | |
| download | mullvadvpn-4ad07b885eed42e2511b8dbcb59e24d366d26f75.tar.xz mullvadvpn-4ad07b885eed42e2511b8dbcb59e24d366d26f75.zip | |
Add support for IPv6 tunnel addresses
Diffstat (limited to 'android/src/main')
| -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)") + } + } } |
