diff options
Diffstat (limited to 'cli/onionshare_cli/web/share_mode.py')
-rw-r--r-- | cli/onionshare_cli/web/share_mode.py | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/cli/onionshare_cli/web/share_mode.py b/cli/onionshare_cli/web/share_mode.py index f714081d..6af4ae0b 100644 --- a/cli/onionshare_cli/web/share_mode.py +++ b/cli/onionshare_cli/web/share_mode.py @@ -29,7 +29,7 @@ from datetime import datetime, timezone from flask import Response, request, render_template, make_response, abort from unidecode import unidecode from werkzeug.http import parse_date, http_date -from werkzeug.urls import url_quote +from urllib.parse import quote from .send_base_mode import SendBaseModeWeb @@ -181,7 +181,6 @@ class ShareModeWeb(SendBaseModeWeb): # Prepare some variables to use inside generate() function below # which is outside of the request context - shutdown_func = request.environ.get("werkzeug.server.shutdown") request_path = request.path # If this is a zipped file, then serve as-is. If it's not zipped, then, @@ -218,7 +217,6 @@ class ShareModeWeb(SendBaseModeWeb): else: r = Response( self.generate( - shutdown_func, range_, file_to_download, request_path, @@ -233,7 +231,7 @@ class ShareModeWeb(SendBaseModeWeb): r.headers.set("Content-Length", range_[1] - range_[0] + 1) filename_dict = { "filename": unidecode(basename), - "filename*": "UTF-8''%s" % url_quote(basename), + "filename*": "UTF-8''%s" % quote(basename), } r.headers.set("Content-Disposition", "attachment", **filename_dict) # guess content type @@ -303,7 +301,7 @@ class ShareModeWeb(SendBaseModeWeb): return range_, status_code def generate( - self, shutdown_func, range_, file_to_download, path, history_id, filesize + self, range_, file_to_download, path, history_id, filesize ): # The user hasn't canceled the download self.client_cancel = False @@ -390,9 +388,7 @@ class ShareModeWeb(SendBaseModeWeb): print("Stopped because transfer is complete") self.web.running = False try: - if shutdown_func is None: - raise RuntimeError("Not running with the Werkzeug Server") - shutdown_func() + self.web.stop() except Exception: pass |