diff options
Diffstat (limited to 'src/leap/bitmask/gui/housekeeping.py')
-rw-r--r-- | src/leap/bitmask/gui/housekeeping.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/leap/bitmask/gui/housekeeping.py b/src/leap/bitmask/gui/housekeeping.py new file mode 100644 index 00000000..3202f5e6 --- /dev/null +++ b/src/leap/bitmask/gui/housekeeping.py @@ -0,0 +1,44 @@ +import os + +from leap.common.config import get_path_prefix + +def get_authenticated_url(): + url = "http://localhost:7070" + path = os.path.join(get_path_prefix(), 'leap', 'authtoken') + waiting = 20 + while not os.path.isfile(path): + if waiting == 0: + # If we arrive here, something really messed up happened, + # because touching the token file is one of the first + # things the backend does, and this BrowserWindow + # should be called *right after* launching the backend. + raise NoAuthToken( + 'No authentication token found!') + time.sleep(0.1) + waiting -= 1 + token = open(path).read().strip() + url += '#' + token + return url + +def terminate(pid): + if os.path.isfile(pid): + with open(pid) as f: + pidno = int(f.read()) + print('[bitmask] terminating bitmaskd...') + os.kill(pidno, signal.SIGTERM) + +def reset_authtoken(): + prev_auth = os.path.join(get_path_prefix(), 'leap', 'authtoken') + try: + os.remove(prev_auth) + except OSError: + pass + +def cleanup(): + print('[bitmask] cleaning up files') + base = os.path.join(get_path_prefix(), 'leap') + token = os.path.join(base, 'authtoken') + pid = os.path.join(base, 'bitmaskd.pid') + for _f in [token, pid]: + if os.path.isfile(_f): + os.unlink(_f) |