aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiguel Jacq <mig@mig5.net>2021-05-31 10:35:02 +1000
committerMiguel Jacq <mig@mig5.net>2021-05-31 10:35:02 +1000
commit64c7f4e5b85f74c2fd0d0cb0be91198b5ea23d56 (patch)
tree3ab1d4d8b70726dbadfaf30fefa35285bf634bf9
parent2c73c0b1b01f6f1375e4c9a07dd328ae088d0d72 (diff)
downloadonionshare-64c7f4e5b85f74c2fd0d0cb0be91198b5ea23d56.tar.gz
onionshare-64c7f4e5b85f74c2fd0d0cb0be91198b5ea23d56.zip
Make it impossible to cancel a share mid-startup, to avoid a thread segfault issue. Only autostart mode can cancel a share (after it is scheduled)
-rw-r--r--desktop/src/onionshare/resources/locale/en.json2
-rw-r--r--desktop/src/onionshare/tab/mode/__init__.py8
-rw-r--r--desktop/src/onionshare/tab/server_status.py2
3 files changed, 2 insertions, 10 deletions
diff --git a/desktop/src/onionshare/resources/locale/en.json b/desktop/src/onionshare/resources/locale/en.json
index a847264b..b61f714d 100644
--- a/desktop/src/onionshare/resources/locale/en.json
+++ b/desktop/src/onionshare/resources/locale/en.json
@@ -33,7 +33,7 @@
"gui_show_url_qr_code": "Show QR Code",
"gui_qr_code_dialog_title": "OnionShare QR Code",
"gui_waiting_to_start": "Scheduled to start in {}. Click to cancel.",
- "gui_please_wait": "Starting… Click to cancel.",
+ "gui_please_wait": "Starting…",
"error_rate_limit": "Someone has made too many wrong attempts to guess your password, so OnionShare has stopped the server. Start sharing again and send the recipient a new address to share.",
"zip_progress_bar_format": "Compressing: %p%",
"gui_settings_window_title": "Settings",
diff --git a/desktop/src/onionshare/tab/mode/__init__.py b/desktop/src/onionshare/tab/mode/__init__.py
index 16944af8..dbdb4ce4 100644
--- a/desktop/src/onionshare/tab/mode/__init__.py
+++ b/desktop/src/onionshare/tab/mode/__init__.py
@@ -354,14 +354,6 @@ class Mode(QtWidgets.QWidget):
self.app.onion.scheduled_key = None
self.app.onion.scheduled_auth_cookie = None
self.startup_thread.quit()
- if self.onion_thread:
- self.common.log("Mode", "cancel_server: quitting onion thread")
- self.onion_thread.terminate()
- self.onion_thread.wait()
- if self.web_thread:
- self.common.log("Mode", "cancel_server: quitting web thread")
- self.web_thread.terminate()
- self.web_thread.wait()
self.stop_server()
def cancel_server_custom(self):
diff --git a/desktop/src/onionshare/tab/server_status.py b/desktop/src/onionshare/tab/server_status.py
index 7ca1af09..a830473e 100644
--- a/desktop/src/onionshare/tab/server_status.py
+++ b/desktop/src/onionshare/tab/server_status.py
@@ -379,7 +379,7 @@ class ServerStatus(QtWidgets.QWidget):
self.start_server()
elif self.status == self.STATUS_STARTED:
self.stop_server()
- elif self.status == self.STATUS_WORKING:
+ elif self.status == self.STATUS_WORKING and self.settings.get("general", "autostart_timer"):
self.cancel_server()
self.button_clicked.emit()