mirror of
https://github.com/onionshare/onionshare.git
synced 2024-10-01 01:35:40 -04:00
Add Web.generate_static_url_path back, so each share has its own static path
This commit is contained in:
parent
a0759cedcd
commit
e7959f9ae6
@ -30,7 +30,7 @@ except:
|
||||
pass
|
||||
|
||||
|
||||
class Web(object):
|
||||
class Web:
|
||||
"""
|
||||
The Web object is the OnionShare web server, powered by flask
|
||||
"""
|
||||
@ -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)
|
||||
|
||||
@ -127,6 +123,17 @@ class Web(object):
|
||||
elif self.mode == 'share':
|
||||
self.share_mode = ShareModeWeb(self.common, self)
|
||||
|
||||
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 define_common_routes(self):
|
||||
"""
|
||||
|
@ -42,6 +42,9 @@ class OnionThread(QtCore.QThread):
|
||||
def run(self):
|
||||
self.mode.common.log('OnionThread', 'run')
|
||||
|
||||
# Make a new static URL path for each new share
|
||||
self.mode.web.generate_static_url_path()
|
||||
|
||||
# Choose port and password early, because we need them to exist in advance for scheduled shares
|
||||
self.mode.app.stay_open = not self.mode.common.settings.get('close_after_first_download')
|
||||
if not self.mode.app.port:
|
||||
|
Loading…
Reference in New Issue
Block a user