diff options
| -rw-r--r-- | src/leap/bitmask/services/eip/darwinvpnlauncher.py | 5 | ||||
| -rw-r--r-- | src/leap/bitmask/services/eip/linuxvpnlauncher.py | 5 | ||||
| -rw-r--r-- | src/leap/bitmask/services/eip/vpnlauncher.py | 3 | ||||
| -rw-r--r-- | src/leap/bitmask/services/eip/vpnprocess.py | 18 | 
4 files changed, 23 insertions, 8 deletions
| diff --git a/src/leap/bitmask/services/eip/darwinvpnlauncher.py b/src/leap/bitmask/services/eip/darwinvpnlauncher.py index f3b6bfc8..fe3fe4c1 100644 --- a/src/leap/bitmask/services/eip/darwinvpnlauncher.py +++ b/src/leap/bitmask/services/eip/darwinvpnlauncher.py @@ -21,6 +21,7 @@ import commands  import getpass  import logging  import os +import sys  from leap.bitmask.services.eip.vpnlauncher import VPNLauncher  from leap.bitmask.services.eip.vpnlauncher import VPNLauncherException @@ -185,6 +186,8 @@ class DarwinVPNLauncher(VPNLauncher):          :rtype: dict          """ +        ld_library_path = os.path.join(get_path_prefix(), "..", "lib") +        ld_library_path.encode(sys.getfilesystemencoding())          return { -            "DYLD_LIBRARY_PATH": os.path.join(get_path_prefix(), "..", "lib") +            "DYLD_LIBRARY_PATH": ld_library_path          } diff --git a/src/leap/bitmask/services/eip/linuxvpnlauncher.py b/src/leap/bitmask/services/eip/linuxvpnlauncher.py index efb23285..d02f6f96 100644 --- a/src/leap/bitmask/services/eip/linuxvpnlauncher.py +++ b/src/leap/bitmask/services/eip/linuxvpnlauncher.py @@ -21,6 +21,7 @@ import commands  import logging  import os  import subprocess +import sys  import time  from leap.bitmask.config import flags @@ -231,6 +232,8 @@ class LinuxVPNLauncher(VPNLauncher):          :rtype: dict          """ +        ld_library_path = os.path.join(get_path_prefix(), "..", "lib") +        ld_library_path.encode(sys.getfilesystemencoding())          return { -            "LD_LIBRARY_PATH": os.path.join(get_path_prefix(), "..", "lib") +            "LD_LIBRARY_PATH": ld_library_path          } diff --git a/src/leap/bitmask/services/eip/vpnlauncher.py b/src/leap/bitmask/services/eip/vpnlauncher.py index bce3599b..07497814 100644 --- a/src/leap/bitmask/services/eip/vpnlauncher.py +++ b/src/leap/bitmask/services/eip/vpnlauncher.py @@ -250,9 +250,6 @@ class VPNLauncher(object):              '--ping-restart', '30']          command_and_args = [openvpn] + args -        logger.debug("Running VPN with command:") -        logger.debug(" ".join(command_and_args)) -          return command_and_args      @classmethod diff --git a/src/leap/bitmask/services/eip/vpnprocess.py b/src/leap/bitmask/services/eip/vpnprocess.py index 19e1aa7b..51f0f738 100644 --- a/src/leap/bitmask/services/eip/vpnprocess.py +++ b/src/leap/bitmask/services/eip/vpnprocess.py @@ -23,6 +23,7 @@ import psutil  import psutil.error  import shutil  import socket +import sys  from itertools import chain, repeat @@ -864,15 +865,26 @@ class VPNProcess(protocol.ProcessProtocol, VPNManager):          """          Gets the vpn command from the aproppriate launcher. -        Might throw: VPNLauncherException, OpenVPNNotFoundException. +        Might throw: +            VPNLauncherException, +            OpenVPNNotFoundException. + +        :rtype: list of str          """ -        cmd = self._launcher.get_vpn_command( +        command = self._launcher.get_vpn_command(              eipconfig=self._eipconfig,              providerconfig=self._providerconfig,              socket_host=self._socket_host,              socket_port=self._socket_port,              openvpn_verb=self._openvpn_verb) -        return map(str, cmd) + +        encoding = sys.getfilesystemencoding() +        for i, c in enumerate(command): +            if not isinstance(c, str): +                command[i] = c.encode(encoding) + +        logger.debug("Running VPN with command: {0}".format(command)) +        return command      # shutdown | 
