Commit cc840c9f authored by Mygod's avatar Mygod

Workaround for #2361

Related bug: https://issuetracker.google.com/issues/149636790
parent 1e0ae01b
...@@ -165,10 +165,7 @@ class VpnService : BaseVpnService(), LocalDnsService.Interface { ...@@ -165,10 +165,7 @@ class VpnService : BaseVpnService(), LocalDnsService.Interface {
.addAddress(PRIVATE_VLAN4_CLIENT, 30) .addAddress(PRIVATE_VLAN4_CLIENT, 30)
.addDnsServer(PRIVATE_VLAN4_ROUTER) .addDnsServer(PRIVATE_VLAN4_ROUTER)
if (profile.ipv6) { if (profile.ipv6) builder.addAddress(PRIVATE_VLAN6_CLIENT, 126)
builder.addAddress(PRIVATE_VLAN6_CLIENT, 126)
builder.addRoute("::", 0)
}
if (profile.proxyApps) { if (profile.proxyApps) {
val me = packageName val me = packageName
...@@ -186,13 +183,17 @@ class VpnService : BaseVpnService(), LocalDnsService.Interface { ...@@ -186,13 +183,17 @@ class VpnService : BaseVpnService(), LocalDnsService.Interface {
} }
when (profile.route) { when (profile.route) {
Acl.ALL, Acl.BYPASS_CHN, Acl.CUSTOM_RULES -> builder.addRoute("0.0.0.0", 0) Acl.ALL, Acl.BYPASS_CHN, Acl.CUSTOM_RULES -> {
builder.addRoute("0.0.0.0", 0)
if (profile.ipv6) builder.addRoute("::", 0)
}
else -> { else -> {
resources.getStringArray(R.array.bypass_private_route).forEach { resources.getStringArray(R.array.bypass_private_route).forEach {
val subnet = Subnet.fromString(it)!! val subnet = Subnet.fromString(it)!!
builder.addRoute(subnet.address.hostAddress, subnet.prefixSize) builder.addRoute(subnet.address.hostAddress, subnet.prefixSize)
} }
builder.addRoute(PRIVATE_VLAN4_ROUTER, 32) builder.addRoute(PRIVATE_VLAN4_ROUTER, 32)
if (profile.ipv6) builder.addRoute("2000::", 3)
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment