diff options
Diffstat (limited to 'src/leap/util')
| -rw-r--r-- | src/leap/util/misc.py | 20 | 
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 | 
