diff options
author | Kali Kaneko <kali@leap.se> | 2013-07-27 01:05:16 +0900 |
---|---|---|
committer | Kali Kaneko <kali@leap.se> | 2013-07-26 18:49:55 +0200 |
commit | 53056ee3f1e1ad07495880ac9f02ed5755ff258f (patch) | |
tree | b2510feb5d2973ef81790fdb1feb92ce5bfc22a6 /src/leap/services | |
parent | d03177371cb2a686beebdc9e0b45d45f126b2c85 (diff) |
add kext check
Diffstat (limited to 'src/leap/services')
-rw-r--r-- | src/leap/services/eip/vpnlaunchers.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/leap/services/eip/vpnlaunchers.py b/src/leap/services/eip/vpnlaunchers.py index 81d9b43b..8522d1df 100644 --- a/src/leap/services/eip/vpnlaunchers.py +++ b/src/leap/services/eip/vpnlaunchers.py @@ -58,6 +58,10 @@ class EIPNoPkexecAvailable(VPNLauncherException): pass +class EIPNoTunKextLoaded(VPNLauncherException): + pass + + class VPNLauncher: """ Abstract launcher class @@ -520,6 +524,13 @@ class DarwinVPNLauncher(VPNLauncher): to, frompath, to, to) return cmd + @classmethod + def maybe_kextloaded(kls): + """ + Checks if the needed kext is loaded before launching openvpn. + """ + return bool(commands.getoutput('kextstat | grep "leap.tun"')) + def _get_resource_path(self): """ Returns the absolute path to the app resources directory @@ -600,6 +611,9 @@ class DarwinVPNLauncher(VPNLauncher): leap_assert(socket_host, "We need a socket host!") leap_assert(socket_port, "We need a socket port!") + if not self.maybe_kextloaded(): + raise EIPNoTunKextLoaded + kwargs = {} if ProviderConfig.standalone: kwargs['path_extension'] = os.path.join( |