summaryrefslogtreecommitdiff
path: root/onionshare
diff options
context:
space:
mode:
authorMicah Lee <micah@micahflee.com>2019-05-29 18:21:53 -0700
committerMicah Lee <micah@micahflee.com>2019-05-29 18:21:53 -0700
commit50b2311409cd93814324a4570e8bdc5d032748c8 (patch)
tree82c8fcee517d8637487b01e9d847597f2e9f029c /onionshare
parentc53ecb0a0390541503fbf84c55a320ff1b7faab8 (diff)
downloadonionshare-50b2311409cd93814324a4570e8bdc5d032748c8.tar.gz
onionshare-50b2311409cd93814324a4570e8bdc5d032748c8.zip
Generate a new static_url_path each time the server is stopped and started again
Diffstat (limited to 'onionshare')
-rw-r--r--onionshare/web/web.py18
1 files changed, 13 insertions, 5 deletions
diff --git a/onionshare/web/web.py b/onionshare/web/web.py
index c6e902ed..1e040b54 100644
--- a/onionshare/web/web.py
+++ b/onionshare/web/web.py
@@ -51,16 +51,12 @@ class Web(object):
self.common = common
self.common.log('Web', '__init__', 'is_gui={}, mode={}'.format(is_gui, mode))
- # The static URL path has a 128-bit random number in it to avoid having name
- # collisions with files that might be getting shared
- self.static_url_path = '/static_{}'.format(self.common.random_string(16))
-
# The flask app
self.app = Flask(__name__,
- static_url_path=self.static_url_path,
static_folder=self.common.get_resource_path('static'),
template_folder=self.common.get_resource_path('templates'))
self.app.secret_key = self.common.random_string(8)
+ self.generate_static_url_path()
self.auth = HTTPBasicAuth()
self.auth.error_handler(self.error401)
@@ -238,6 +234,18 @@ class Web(object):
self.password = self.common.build_password()
self.common.log('Web', 'generate_password', 'built random password: "{}"'.format(self.password))
+ def generate_static_url_path(self):
+ # The static URL path has a 128-bit random number in it to avoid having name
+ # collisions with files that might be getting shared
+ self.static_url_path = '/static_{}'.format(self.common.random_string(16))
+ self.common.log('Web', 'generate_static_url_path', 'new static_url_path is {}'.format(self.static_url_path))
+
+ # Update the flask route to handle the new static URL path
+ self.app.static_url_path = self.static_url_path
+ self.app.add_url_rule(
+ self.static_url_path + '/<path:filename>',
+ endpoint='static', view_func=self.app.send_static_file)
+
def verbose_mode(self):
"""
Turn on verbose mode, which will log flask errors to a file.