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: |