Merge "Make legacy VPN work over stacked interfaces."
This commit is contained in:
@@ -467,15 +467,15 @@ public class Vpn extends BaseNetworkStateTracker {
|
|||||||
private native int jniCheck(String interfaze);
|
private native int jniCheck(String interfaze);
|
||||||
private native void jniProtect(int socket, String interfaze);
|
private native void jniProtect(int socket, String interfaze);
|
||||||
|
|
||||||
private static String findLegacyVpnGateway(LinkProperties prop) {
|
private static RouteInfo findIPv4DefaultRoute(LinkProperties prop) {
|
||||||
for (RouteInfo route : prop.getRoutes()) {
|
for (RouteInfo route : prop.getAllRoutes()) {
|
||||||
// Currently legacy VPN only works on IPv4.
|
// Currently legacy VPN only works on IPv4.
|
||||||
if (route.isDefaultRoute() && route.getGateway() instanceof Inet4Address) {
|
if (route.isDefaultRoute() && route.getGateway() instanceof Inet4Address) {
|
||||||
return route.getGateway().getHostAddress();
|
return route;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new IllegalStateException("Unable to find suitable gateway");
|
throw new IllegalStateException("Unable to find IPv4 default gateway");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -488,8 +488,9 @@ public class Vpn extends BaseNetworkStateTracker {
|
|||||||
throw new IllegalStateException("KeyStore isn't unlocked");
|
throw new IllegalStateException("KeyStore isn't unlocked");
|
||||||
}
|
}
|
||||||
|
|
||||||
final String iface = egress.getInterfaceName();
|
final RouteInfo ipv4DefaultRoute = findIPv4DefaultRoute(egress);
|
||||||
final String gateway = findLegacyVpnGateway(egress);
|
final String gateway = ipv4DefaultRoute.getGateway().getHostAddress();
|
||||||
|
final String iface = ipv4DefaultRoute.getInterface();
|
||||||
|
|
||||||
// Load certificates.
|
// Load certificates.
|
||||||
String privateKey = "";
|
String privateKey = "";
|
||||||
|
|||||||
Reference in New Issue
Block a user