diff options
author | Micah Lee <micah@micahflee.com> | 2019-09-15 14:46:29 -0700 |
---|---|---|
committer | Micah Lee <micah@micahflee.com> | 2019-09-15 14:46:29 -0700 |
commit | 16fedabf400a696c452c644bcd7031af8b0e2b9e (patch) | |
tree | 318e4eaedbc2fb3c89b1c83fb5261dd50447d751 | |
parent | 86a2b35d9ddc6c0fb9d068ca0f45c48fbfcaa219 (diff) | |
download | onionshare-16fedabf400a696c452c644bcd7031af8b0e2b9e.tar.gz onionshare-16fedabf400a696c452c644bcd7031af8b0e2b9e.zip |
Allow 404 errors to work in receive mode
-rw-r--r-- | onionshare/web/receive_mode.py | 1 | ||||
-rw-r--r-- | onionshare/web/web.py | 22 |
2 files changed, 19 insertions, 4 deletions
diff --git a/onionshare/web/receive_mode.py b/onionshare/web/receive_mode.py index 8604a889..83040683 100644 --- a/onionshare/web/receive_mode.py +++ b/onionshare/web/receive_mode.py @@ -21,6 +21,7 @@ class ReceiveModeWeb: self.can_upload = True self.uploads_in_progress = [] + # This tracks the history id self.cur_history_id = 0 self.define_routes() diff --git a/onionshare/web/web.py b/onionshare/web/web.py index ca63e520..ecd9edc2 100644 --- a/onionshare/web/web.py +++ b/onionshare/web/web.py @@ -119,12 +119,23 @@ class Web: # Create the mode web object, which defines its own routes self.share_mode = None self.receive_mode = None - if self.mode == 'receive': + self.website_mode = None + if self.mode == 'share': + self.share_mode = ShareModeWeb(self.common, self) + elif self.mode == 'receive': self.receive_mode = ReceiveModeWeb(self.common, self) elif self.mode == 'website': self.website_mode = WebsiteModeWeb(self.common, self) - elif self.mode == 'share': - self.share_mode = ShareModeWeb(self.common, self) + + def get_mode(self): + if self.mode == 'share': + return self.share_mode + elif self.mode == 'receive': + return self.receive_mode + elif self.mode == 'website': + return self.website_mode + else: + return None def generate_static_url_path(self): # The static URL path has a 128-bit random number in it to avoid having name @@ -166,7 +177,10 @@ class Web: @self.app.errorhandler(404) def not_found(e): - return self.error404() + mode = self.get_mode() + history_id = mode.cur_history_id + mode.cur_history_id += 1 + return self.error404(history_id) @self.app.route("/<password_candidate>/shutdown") def shutdown(password_candidate): |