diff options
author | Micah Lee <micah@micahflee.com> | 2018-11-25 16:15:27 -0800 |
---|---|---|
committer | Micah Lee <micah@micahflee.com> | 2018-11-25 16:15:27 -0800 |
commit | d8b873a20825404ea8b9c6727680911b2e19e910 (patch) | |
tree | af71fdafd72fe7c25339cb2d77a9a9d3ce0ab33d | |
parent | 0794d7fb9040e3ecf599202c27c191215a795f37 (diff) | |
download | onionshare-d8b873a20825404ea8b9c6727680911b2e19e910.tar.gz onionshare-d8b873a20825404ea8b9c6727680911b2e19e910.zip |
Create a group container for macOS sandbox, and on Mac put the Tor data dir in it
-rw-r--r-- | install/macos_sandbox/parent.plist | 6 | ||||
-rw-r--r-- | onionshare/onion.py | 7 | ||||
-rw-r--r-- | onionshare/settings.py | 6 |
3 files changed, 13 insertions, 6 deletions
diff --git a/install/macos_sandbox/parent.plist b/install/macos_sandbox/parent.plist index ceecd30a..6d557cf0 100644 --- a/install/macos_sandbox/parent.plist +++ b/install/macos_sandbox/parent.plist @@ -4,6 +4,8 @@ <dict> <key>com.apple.security.app-sandbox</key> <true/> + <key>com.apple.security.network.server</key> + <true/> <key>com.apple.security.network.client</key> <true/> <key>com.apple.security.files.user-selected.read-only</key> @@ -12,5 +14,9 @@ <array> <string>/OnionShare</string> </array> + <key>com.apple.security.application-groups</key> + <array> + <string>com.micahflee.onionshare</string> + </array> </dict> </plist> diff --git a/onionshare/onion.py b/onionshare/onion.py index 6066f059..f9f551c4 100644 --- a/onionshare/onion.py +++ b/onionshare/onion.py @@ -166,7 +166,12 @@ class Onion(object): raise BundledTorNotSupported(strings._('settings_error_bundled_tor_not_supported')) # Create a torrc for this session - self.tor_data_directory = tempfile.TemporaryDirectory() + if self.common.platform == 'Darwin': + group_container_dir = os.path.expanduser('~/Library/Group Containers/com.micahflee.onionshare') + os.makedirs(group_container_dir, exist_ok=True) + self.tor_data_directory = tempfile.TemporaryDirectory(dir=group_container_dir) + else: + self.tor_data_directory = tempfile.TemporaryDirectory() if self.common.platform == 'Windows': # Windows needs to use network ports, doesn't support unix sockets diff --git a/onionshare/settings.py b/onionshare/settings.py index ed827cbd..4a056989 100644 --- a/onionshare/settings.py +++ b/onionshare/settings.py @@ -163,11 +163,7 @@ class Settings(object): Save settings to file. """ self.common.log('Settings', 'save') - - try: - os.makedirs(os.path.dirname(self.filename)) - except: - pass + os.makedirs(os.path.dirname(self.filename), exist_ok=True) open(self.filename, 'w').write(json.dumps(self._settings)) self.common.log('Settings', 'save', 'Settings saved in {}'.format(self.filename)) |