summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMicah Lee <micah@micahflee.com>2019-09-15 14:46:29 -0700
committerMicah Lee <micah@micahflee.com>2019-09-15 14:46:29 -0700
commit16fedabf400a696c452c644bcd7031af8b0e2b9e (patch)
tree318e4eaedbc2fb3c89b1c83fb5261dd50447d751
parent86a2b35d9ddc6c0fb9d068ca0f45c48fbfcaa219 (diff)
downloadonionshare-16fedabf400a696c452c644bcd7031af8b0e2b9e.tar.gz
onionshare-16fedabf400a696c452c644bcd7031af8b0e2b9e.zip
Allow 404 errors to work in receive mode
-rw-r--r--onionshare/web/receive_mode.py1
-rw-r--r--onionshare/web/web.py22
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):