Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 454fbe18 authored by chiachangwang's avatar chiachangwang
Browse files

Honor IP protocol set by client in non-auto IP selection mode

If automatic IP version selection is not enabled and VPN clients
set the IP version and encap type in the IkeSessionParams, VPN
should use the value set by clients instead of always setting them
to auto.

Test: atest FrameworksNetTests
Change-Id: Icd76b06cb9155b0d1fc62811daeafe89d2e45149
parent 4c195ab2
Loading
Loading
Loading
Loading
+16 −4
Original line number Diff line number Diff line
@@ -3558,10 +3558,22 @@ public class Vpn {
                    + mCurrentToken
                    + " to network "
                    + underlyingNetwork);
            final int ipVersion = mProfile.isAutomaticIpVersionSelectionEnabled()
                    ? guessEspIpVersionForNetwork() : ESP_IP_VERSION_AUTO;
            final int encapType = mProfile.isAutomaticIpVersionSelectionEnabled()
                    ? guessEspEncapTypeForNetwork() : ESP_ENCAP_TYPE_AUTO;

            final int ipVersion;
            final int encapType;
            if (mProfile.isAutomaticIpVersionSelectionEnabled()) {
                ipVersion = guessEspIpVersionForNetwork();
                encapType = guessEspEncapTypeForNetwork();
            } else if (mProfile.getIkeTunnelConnectionParams() != null) {
                ipVersion = mProfile.getIkeTunnelConnectionParams()
                        .getIkeSessionParams().getIpVersion();
                encapType = mProfile.getIkeTunnelConnectionParams()
                        .getIkeSessionParams().getEncapType();
            } else {
                ipVersion = ESP_IP_VERSION_AUTO;
                encapType = ESP_ENCAP_TYPE_AUTO;
            }

            final int keepaliveDelaySeconds;
            if (mProfile.isAutomaticNattKeepaliveTimerEnabled()) {
                keepaliveDelaySeconds = guessNattKeepaliveTimerForNetwork();