diff options
| -rw-r--r-- | changes/bug-update-requirements | 1 | ||||
| -rw-r--r-- | changes/bug_improve_openvpn_detection | 3 | ||||
| -rw-r--r-- | pkg/requirements.pip | 2 | ||||
| -rw-r--r-- | src/leap/bitmask/services/eip/vpnlaunchers.py | 13 | ||||
| -rw-r--r-- | src/leap/bitmask/services/eip/vpnprocess.py | 5 | 
5 files changed, 22 insertions, 2 deletions
| diff --git a/changes/bug-update-requirements b/changes/bug-update-requirements new file mode 100644 index 00000000..e86e6e84 --- /dev/null +++ b/changes/bug-update-requirements @@ -0,0 +1 @@ +  o Update leap.common minimum version needed. diff --git a/changes/bug_improve_openvpn_detection b/changes/bug_improve_openvpn_detection new file mode 100644 index 00000000..99f43a07 --- /dev/null +++ b/changes/bug_improve_openvpn_detection @@ -0,0 +1,3 @@ +  o Improve OpenVPN detection by searching for a specific leap-only +    string in the command line. This makes it possible to run other +    VPN instances while also using EIP. Fixes #3268 and #3364.
\ No newline at end of file diff --git a/pkg/requirements.pip b/pkg/requirements.pip index 042633a0..f533e521 100644 --- a/pkg/requirements.pip +++ b/pkg/requirements.pip @@ -17,7 +17,7 @@ twisted  qt4reactor  python-gnupg -leap.common>=0.2.5 +leap.common>=0.3.0  leap.soledad>=0.1.0  leap.keymanager>=0.2.0 diff --git a/src/leap/bitmask/services/eip/vpnlaunchers.py b/src/leap/bitmask/services/eip/vpnlaunchers.py index 8a127ce9..31a1c17b 100644 --- a/src/leap/bitmask/services/eip/vpnlaunchers.py +++ b/src/leap/bitmask/services/eip/vpnlaunchers.py @@ -402,6 +402,10 @@ class LinuxVPNLauncher(VPNLauncher):          openvpn = first(openvpn_possibilities)          args = [] +        args += [ +            '--setenv', "LEAPOPENVPN", "1" +        ] +          pkexec = self.maybe_pkexec()          if pkexec:              args.append(openvpn) @@ -658,6 +662,10 @@ class DarwinVPNLauncher(VPNLauncher):          openvpn = first(openvpn_possibilities)          args = [openvpn] +        args += [ +            '--setenv', "LEAPOPENVPN", "1" +        ] +          if openvpn_verb is not None:              args += ['--verb', '%d' % (openvpn_verb,)] @@ -825,6 +833,11 @@ class WindowsVPNLauncher(VPNLauncher):          openvpn = first(openvpn_possibilities)          args = [] + +        args += [ +            '--setenv', "LEAPOPENVPN", "1" +        ] +          if openvpn_verb is not None:              args += ['--verb', '%d' % (openvpn_verb,)] diff --git a/src/leap/bitmask/services/eip/vpnprocess.py b/src/leap/bitmask/services/eip/vpnprocess.py index 95ea2334..a896b60c 100644 --- a/src/leap/bitmask/services/eip/vpnprocess.py +++ b/src/leap/bitmask/services/eip/vpnprocess.py @@ -229,6 +229,9 @@ class VPNManager(object):      """      # Timers, in secs +    # NOTE: We need to set a bigger poll time in OSX because it seems +    # openvpn malfunctions when you ask it a lot of things in a short +    # amount of time.      POLL_TIME = 2.5 if IS_MAC else 1.0      CONNECTION_RETRY_TIME = 1 @@ -579,7 +582,7 @@ class VPNManager(object):                  # we need to be able to filter out arguments in the form                  # --openvpn-foo, since otherwise we are shooting ourselves                  # in the feet. -                if any(map(lambda s: s.startswith("openvpn"), p.cmdline)): +                if any(map(lambda s: s.find("LEAPOPENVPN") != -1, p.cmdline)):                      openvpn_process = p                      break              except psutil.error.AccessDenied: | 
