summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiguel Jacq <mig@mig5.net>2019-09-16 14:51:16 +1000
committerMiguel Jacq <mig@mig5.net>2019-09-16 14:51:16 +1000
commit670044fa56bfc807eac91d1320c85fd7aba8dfe3 (patch)
tree915aa4ed4726b05344c183fddee7429f95141b1a
parent957d3e9c6d424fdfc394bef529b87f52e16f371f (diff)
downloadonionshare-670044fa56bfc807eac91d1320c85fd7aba8dfe3.tar.gz
onionshare-670044fa56bfc807eac91d1320c85fd7aba8dfe3.zip
Ensure the backend receives the latest settings object before starting the onion service, and likewise for the GUI, so that we absolutely always save the private key for persistence back to the json settings file when we need to
-rw-r--r--onionshare/onion.py4
-rw-r--r--onionshare_gui/server_status.py3
2 files changed, 7 insertions, 0 deletions
diff --git a/onionshare/onion.py b/onionshare/onion.py
index 2f4ddffd..b0499449 100644
--- a/onionshare/onion.py
+++ b/onionshare/onion.py
@@ -438,6 +438,10 @@ class Onion(object):
return the onion hostname.
"""
self.common.log('Onion', 'start_onion_service')
+ # Settings may have changed in the frontend but not updated in our settings object,
+ # such as persistence. Reload the settings now just to be sure.
+ self.settings.load()
+
self.auth_string = None
if not self.supports_ephemeral:
diff --git a/onionshare_gui/server_status.py b/onionshare_gui/server_status.py
index 3a6e31cc..dbcc6ca8 100644
--- a/onionshare_gui/server_status.py
+++ b/onionshare_gui/server_status.py
@@ -240,6 +240,9 @@ class ServerStatus(QtWidgets.QWidget):
"""
# Set the URL fields
if self.status == self.STATUS_STARTED:
+ # The backend Onion may have saved new settings, such as the private key.
+ # Reload the settings before saving new ones.
+ self.common.settings.load()
self.show_url()
if self.common.settings.get('save_private_key'):