diff options
author | Kali Kaneko <kali@leap.se> | 2017-12-19 22:29:15 +0100 |
---|---|---|
committer | Kali Kaneko <kali@leap.se> | 2017-12-20 15:36:41 +0100 |
commit | fdf66fccc0b1c2f169bfd72166add45ea3959488 (patch) | |
tree | 02198350d5428a8a63e0981a7648ea6ec707622a | |
parent | 133cd008f451ea997f1093490ca1ec097a17ae1b (diff) |
[bug] add lock in command dispatcher
-rwxr-xr-x | src/leap/bitmask/vpn/helpers/osx/bitmask-helper | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/leap/bitmask/vpn/helpers/osx/bitmask-helper b/src/leap/bitmask/vpn/helpers/osx/bitmask-helper index 53b3ed2a..7c8a80e8 100755 --- a/src/leap/bitmask/vpn/helpers/osx/bitmask-helper +++ b/src/leap/bitmask/vpn/helpers/osx/bitmask-helper @@ -60,7 +60,7 @@ from functools import partial import daemon import re -VERSION = "1" +VERSION = "2" SCRIPT = "bitmask-helper" NAMESERVER = "10.42.0.1" BITMASK_ANCHOR = "com.apple/250.BitmaskFirewall" @@ -125,6 +125,9 @@ UID = os.getuid() SERVER_ADDRESS = '/var/run/bitmask-helper.socket' +cmd_lock = threading.Lock() + + # # COMMAND DISPATCH # @@ -189,16 +192,14 @@ def handle_command(sock): } cmd_call = cmd_dict.get(command, None) - # syslog.syslog(syslog.LOG_WARNING, 'call: %s' % (str(cmd_call))) + cmd_lock.acquire() + try: if cmd_call: - # syslog.syslog( - # syslog.LOG_WARNING, 'GOT "%s"' % (command)) cmd, args = cmd_call if args: cmd = partial(cmd, *args) - # TODO Use a MUTEX in here result = cmd() syslog.syslog(syslog.LOG_WARNING, "%s result: %s" % ( command, str(result))) @@ -217,6 +218,7 @@ def handle_command(sock): syslog.syslog( syslog.LOG_WARNING, "error executing function %r" % (exc)) finally: + cmd_lock.release() sock.close() # |