Add server information for pptp vpn
The pptp vpn set up in ip-up-vpn.c does not provide an environment variable for the remote server so we cannot setup a correct throw route to the VPN endpoint. Change the LegacyVpnRunner class to include the remote server information in the class so it can use it to bring up the vpn and set the throw rule correctly. Bug: 131386220 Test: Build Change-Id: Ia6b00dd88f8f31823647c56c20b8c7edd20280f7
This commit is contained in:
@@ -1850,10 +1850,11 @@ public class Vpn {
|
||||
if (!profile.searchDomains.isEmpty()) {
|
||||
config.searchDomains = Arrays.asList(profile.searchDomains.split(" +"));
|
||||
}
|
||||
startLegacyVpn(config, racoon, mtpd);
|
||||
startLegacyVpn(config, racoon, mtpd, profile);
|
||||
}
|
||||
|
||||
private synchronized void startLegacyVpn(VpnConfig config, String[] racoon, String[] mtpd) {
|
||||
private synchronized void startLegacyVpn(VpnConfig config, String[] racoon, String[] mtpd,
|
||||
VpnProfile profile) {
|
||||
stopLegacyVpnPrivileged();
|
||||
|
||||
// Prepare for the new request.
|
||||
@@ -1861,7 +1862,7 @@ public class Vpn {
|
||||
updateState(DetailedState.CONNECTING, "startLegacyVpn");
|
||||
|
||||
// Start a new LegacyVpnRunner and we are done!
|
||||
mLegacyVpnRunner = new LegacyVpnRunner(config, racoon, mtpd);
|
||||
mLegacyVpnRunner = new LegacyVpnRunner(config, racoon, mtpd, profile);
|
||||
mLegacyVpnRunner.start();
|
||||
}
|
||||
|
||||
@@ -1927,6 +1928,7 @@ public class Vpn {
|
||||
private final String mOuterInterface;
|
||||
private final AtomicInteger mOuterConnection =
|
||||
new AtomicInteger(ConnectivityManager.TYPE_NONE);
|
||||
private final VpnProfile mProfile;
|
||||
|
||||
private long mBringupStartTime = -1;
|
||||
|
||||
@@ -1953,7 +1955,7 @@ public class Vpn {
|
||||
}
|
||||
};
|
||||
|
||||
public LegacyVpnRunner(VpnConfig config, String[] racoon, String[] mtpd) {
|
||||
LegacyVpnRunner(VpnConfig config, String[] racoon, String[] mtpd, VpnProfile profile) {
|
||||
super(TAG);
|
||||
mConfig = config;
|
||||
mDaemons = new String[] {"racoon", "mtpd"};
|
||||
@@ -1969,6 +1971,8 @@ public class Vpn {
|
||||
// registering
|
||||
mOuterInterface = mConfig.interfaze;
|
||||
|
||||
mProfile = profile;
|
||||
|
||||
if (!TextUtils.isEmpty(mOuterInterface)) {
|
||||
final ConnectivityManager cm = ConnectivityManager.from(mContext);
|
||||
for (Network network : cm.getAllNetworks()) {
|
||||
@@ -2181,7 +2185,7 @@ public class Vpn {
|
||||
}
|
||||
|
||||
// Add a throw route for the VPN server endpoint, if one was specified.
|
||||
String endpoint = parameters[5];
|
||||
String endpoint = parameters[5].isEmpty() ? mProfile.server : parameters[5];
|
||||
if (!endpoint.isEmpty()) {
|
||||
try {
|
||||
InetAddress addr = InetAddress.parseNumericAddress(endpoint);
|
||||
|
||||
Reference in New Issue
Block a user