From 04019389dad4fc1b7311fbfe77b412e0c576c143 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Tue, 4 May 2021 16:21:42 +1000 Subject: Move the cleanup() function from Onionshare class to Web class, so that the list of files to be cleaned up is always available (needed for website temp files) --- desktop/src/onionshare/tab/mode/__init__.py | 2 +- desktop/src/onionshare/tab/mode/share_mode/threads.py | 2 +- desktop/src/onionshare/tab/tab.py | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'desktop') diff --git a/desktop/src/onionshare/tab/mode/__init__.py b/desktop/src/onionshare/tab/mode/__init__.py index 567dc123..16944af8 100644 --- a/desktop/src/onionshare/tab/mode/__init__.py +++ b/desktop/src/onionshare/tab/mode/__init__.py @@ -382,7 +382,7 @@ class Mode(QtWidgets.QWidget): except Exception: # Probably we had no port to begin with (Onion service didn't start) pass - self.app.cleanup() + self.web.cleanup() self.stop_server_custom() diff --git a/desktop/src/onionshare/tab/mode/share_mode/threads.py b/desktop/src/onionshare/tab/mode/share_mode/threads.py index 74d5099a..5be94e88 100644 --- a/desktop/src/onionshare/tab/mode/share_mode/threads.py +++ b/desktop/src/onionshare/tab/mode/share_mode/threads.py @@ -47,7 +47,7 @@ class CompressThread(QtCore.QThread): self.mode.filenames, processed_size_callback=self.set_processed_size ) self.success.emit() - self.mode.app.cleanup_filenames += ( + self.mode.web.cleanup_filenames += ( self.mode.web.share_mode.cleanup_filenames ) except OSError as e: diff --git a/desktop/src/onionshare/tab/tab.py b/desktop/src/onionshare/tab/tab.py index 3d88ded5..5d929d01 100644 --- a/desktop/src/onionshare/tab/tab.py +++ b/desktop/src/onionshare/tab/tab.py @@ -668,7 +668,7 @@ class Tab(QtWidgets.QWidget): if self.close_dialog.clickedButton() == self.close_dialog.accept_button: self.common.log("Tab", "close_tab", "close, closing tab") self.get_mode().stop_server() - self.app.cleanup() + mode.web.cleanup() return True # Cancel else: @@ -681,4 +681,4 @@ class Tab(QtWidgets.QWidget): self.get_mode().web.stop(self.get_mode().app.port) self.get_mode().web_thread.quit() self.get_mode().web_thread.wait() - self.app.cleanup() + self.get_mode().web.cleanup() -- cgit v1.2.3-54-g00ecf From d8801ff061ef38c339bc106b2b334c9e7989ea0f Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Tue, 4 May 2021 16:30:38 +1000 Subject: move self.get_mode().web.cleanup() inside the if self.get_mode() conditional, in desktop --- desktop/src/onionshare/tab/tab.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'desktop') diff --git a/desktop/src/onionshare/tab/tab.py b/desktop/src/onionshare/tab/tab.py index 5d929d01..a0263a50 100644 --- a/desktop/src/onionshare/tab/tab.py +++ b/desktop/src/onionshare/tab/tab.py @@ -681,4 +681,4 @@ class Tab(QtWidgets.QWidget): self.get_mode().web.stop(self.get_mode().app.port) self.get_mode().web_thread.quit() self.get_mode().web_thread.wait() - self.get_mode().web.cleanup() + self.get_mode().web.cleanup() -- cgit v1.2.3-54-g00ecf From c6ccd4de579332187232f0e4bfeb33fe531f76d8 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Tue, 4 May 2021 16:42:23 +1000 Subject: Remove unnecessary cleanup_filenames appending in the CompressThread. Ensure we also remove the temp dir that a Zip file is made within, by setting the temp dir in ZipWriter as a variable --- cli/onionshare_cli/web/share_mode.py | 4 +++- desktop/src/onionshare/tab/mode/share_mode/threads.py | 3 --- 2 files changed, 3 insertions(+), 4 deletions(-) (limited to 'desktop') diff --git a/cli/onionshare_cli/web/share_mode.py b/cli/onionshare_cli/web/share_mode.py index c5007d7f..95aec1ba 100644 --- a/cli/onionshare_cli/web/share_mode.py +++ b/cli/onionshare_cli/web/share_mode.py @@ -525,6 +525,7 @@ class ShareModeWeb(SendBaseModeWeb): # Make sure the zip file gets cleaned up when onionshare stops self.web.cleanup_filenames.append(self.zip_writer.zip_filename) + self.web.cleanup_filenames.append(self.zip_writer.zip_temp_dir) self.is_zipped = True @@ -545,8 +546,9 @@ class ZipWriter(object): if zip_filename: self.zip_filename = zip_filename else: + self.zip_temp_dir = tempfile.mkdtemp() self.zip_filename = ( - f"{tempfile.mkdtemp()}/onionshare_{self.common.random_string(4, 6)}.zip" + f"{self.zip_temp_dir}/onionshare_{self.common.random_string(4, 6)}.zip" ) self.z = zipfile.ZipFile(self.zip_filename, "w", allowZip64=True) diff --git a/desktop/src/onionshare/tab/mode/share_mode/threads.py b/desktop/src/onionshare/tab/mode/share_mode/threads.py index 5be94e88..839d30ea 100644 --- a/desktop/src/onionshare/tab/mode/share_mode/threads.py +++ b/desktop/src/onionshare/tab/mode/share_mode/threads.py @@ -47,9 +47,6 @@ class CompressThread(QtCore.QThread): self.mode.filenames, processed_size_callback=self.set_processed_size ) self.success.emit() - self.mode.web.cleanup_filenames += ( - self.mode.web.share_mode.cleanup_filenames - ) except OSError as e: self.error.emit(e.strerror) -- cgit v1.2.3-54-g00ecf From 49a1e2890be9a86ac8b041d9dfef927e674a6ee2 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Tue, 4 May 2021 16:48:42 +1000 Subject: Fix call to web.cleanup() when closing a tab that has a running share --- desktop/src/onionshare/tab/tab.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'desktop') diff --git a/desktop/src/onionshare/tab/tab.py b/desktop/src/onionshare/tab/tab.py index a0263a50..d39cf826 100644 --- a/desktop/src/onionshare/tab/tab.py +++ b/desktop/src/onionshare/tab/tab.py @@ -668,7 +668,7 @@ class Tab(QtWidgets.QWidget): if self.close_dialog.clickedButton() == self.close_dialog.accept_button: self.common.log("Tab", "close_tab", "close, closing tab") self.get_mode().stop_server() - mode.web.cleanup() + self.get_mode().web.cleanup() return True # Cancel else: -- cgit v1.2.3-54-g00ecf