summaryrefslogtreecommitdiff
path: root/src/leap/util/misc.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/leap/util/misc.py')
-rw-r--r--src/leap/util/misc.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/leap/util/misc.py b/src/leap/util/misc.py
index 3c26892b..d869a1ba 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,21 @@ 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