summaryrefslogtreecommitdiff
path: root/src/leap/util
diff options
context:
space:
mode:
authorkali <kali@leap.se>2013-01-17 07:31:59 +0900
committerkali <kali@leap.se>2013-01-17 07:32:30 +0900
commit6e9c63f47b98fbfcd3a5104fbfa5cc9d9ffe5143 (patch)
tree347c0e62abba34caf0f41b4e85b15d3fbf8cbc6c /src/leap/util
parentd6c8cb0f12e8924820c296a8114a7899f61e5180 (diff)
osx fixed already running instance check
Diffstat (limited to 'src/leap/util')
-rw-r--r--src/leap/util/misc.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/leap/util/misc.py b/src/leap/util/misc.py
index 3c26892b..aa3ebe25 100644
--- a/src/leap/util/misc.py
+++ b/src/leap/util/misc.py
@@ -1,6 +1,9 @@
"""
misc utils
"""
+import psutil
+
+from leap.base.constants import OPENVPN_BIN
class ImproperlyConfigured(Exception):
@@ -14,3 +17,20 @@ def null_check(value, value_name):
except AssertionError:
raise ImproperlyConfigured(
"%s parameter cannot be None" % value_name)
+
+def get_openvpn_pids():
+ # binary name might change
+
+ openvpn_pids = []
+ for p in psutil.process_iter():
+ try:
+ # XXX Not exact!
+ # Will give false positives.
+ # we should check that cmdline BEGINS
+ # with openvpn or with our wrapper
+ # (pkexec / osascript / whatever)
+ if OPENVPN_BIN in ' '.join(p.cmdline):
+ openvpn_pids.append(p.pid)
+ except psutil.error.AccessDenied:
+ pass
+ return openvpn_pids