diff options
Diffstat (limited to 'src/leap/util/misc.py')
-rw-r--r-- | src/leap/util/misc.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/leap/util/misc.py b/src/leap/util/misc.py new file mode 100644 index 00000000..d869a1ba --- /dev/null +++ b/src/leap/util/misc.py @@ -0,0 +1,37 @@ +""" +misc utils +""" +import psutil + +from leap.base.constants import OPENVPN_BIN + + +class ImproperlyConfigured(Exception): + """ + """ + + +def null_check(value, value_name): + try: + assert value is not None + 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 |