diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-11-21 21:14:08 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-12-16 12:36:00 +0000 |
| commit | 3d73129f24362ee277391af1dd11fa9a4d66ff6b (patch) | |
| tree | 799c8bb4fb0d429b457468d487be69c25e27e800 /android/src | |
| parent | f860d098dd2b096640c905424f01a0eb5d64c399 (diff) | |
| download | mullvadvpn-3d73129f24362ee277391af1dd11fa9a4d66ff6b.tar.xz mullvadvpn-3d73129f24362ee277391af1dd11fa9a4d66ff6b.zip | |
Return error when Android rejects DNS server
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt | 12 |
1 files changed, 11 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 419c8a0e68..7da32ad71b 100644 --- a/android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt +++ b/android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt @@ -101,13 +101,19 @@ open class TalpidVpnService : VpnService() { return CreateTunResult.PermissionDenied() } + var invalidDnsServerAddresses = ArrayList<InetAddress>() + val builder = Builder().apply { for (address in config.addresses) { addAddress(address, prefixForAddress(address)) } for (dnsServer in config.dnsServers) { - addDnsServer(dnsServer) + try { + addDnsServer(dnsServer) + } catch (exception: IllegalArgumentException) { + invalidDnsServerAddresses.add(dnsServer) + } } for (route in config.routes) { @@ -137,6 +143,10 @@ open class TalpidVpnService : VpnService() { waitForTunnelUp(tunFd, config.routes.any { route -> route.isIpv6 }) + if (!invalidDnsServerAddresses.isEmpty()) { + return CreateTunResult.InvalidDnsServers(invalidDnsServerAddresses, tunFd) + } + return CreateTunResult.Success(tunFd) } |
