summaryrefslogtreecommitdiff
path: root/onionshare
diff options
context:
space:
mode:
authorMiguel Jacq <mig@mig5.net>2018-01-15 10:01:34 +1100
committerMiguel Jacq <mig@mig5.net>2018-01-15 10:01:34 +1100
commit3e7d4c64ffff73b03779860d1d3423e126852690 (patch)
tree5a9efbe4aab57cc94f0f70279ebcbdb1c0ab3ba4 /onionshare
parent448f6af7968757b42f339877098f832a5a282217 (diff)
downloadonionshare-3e7d4c64ffff73b03779860d1d3423e126852690.tar.gz
onionshare-3e7d4c64ffff73b03779860d1d3423e126852690.zip
Save the slug when using a persistent private key
Diffstat (limited to 'onionshare')
-rw-r--r--onionshare/__init__.py14
-rw-r--r--onionshare/settings.py1
-rw-r--r--onionshare/web.py11
3 files changed, 20 insertions, 6 deletions
diff --git a/onionshare/__init__.py b/onionshare/__init__.py
index 99beb0e0..a3474da9 100644
--- a/onionshare/__init__.py
+++ b/onionshare/__init__.py
@@ -23,7 +23,7 @@ import os, sys, time, argparse, threading
from . import strings, common, web
from .onion import *
from .onionshare import OnionShare
-
+from .settings import Settings
def main(cwd=None):
"""
@@ -77,6 +77,10 @@ def main(cwd=None):
if not valid:
sys.exit()
+
+ settings = Settings(config)
+ settings.load()
+
# Start the Onion object
onion = Onion()
try:
@@ -108,7 +112,7 @@ def main(cwd=None):
print('')
# Start OnionShare http service in new thread
- t = threading.Thread(target=web.start, args=(app.port, app.stay_open))
+ t = threading.Thread(target=web.start, args=(app.port, app.stay_open, settings.get('slug')))
t.daemon = True
t.start()
@@ -120,6 +124,12 @@ def main(cwd=None):
if app.shutdown_timeout > 0:
app.shutdown_timer.start()
+ # Save the web slug if we are using a persistent private key
+ if settings.get('save_private_key'):
+ if not settings.get('slug'):
+ settings.set('slug', web.slug)
+ settings.save()
+
if(stealth):
print(strings._("give_this_url_stealth"))
print('http://{0:s}/{1:s}'.format(app.onion_host, web.slug))
diff --git a/onionshare/settings.py b/onionshare/settings.py
index e87638f1..e8103757 100644
--- a/onionshare/settings.py
+++ b/onionshare/settings.py
@@ -63,6 +63,7 @@ class Settings(object):
'autoupdate_timestamp': None,
'save_private_key': False,
'private_key': '',
+ 'slug': '',
'hidservauth_string': ''
}
self._settings = {}
diff --git a/onionshare/web.py b/onionshare/web.py
index 03da8fd7..3eef67c7 100644
--- a/onionshare/web.py
+++ b/onionshare/web.py
@@ -128,9 +128,12 @@ def add_request(request_type, path, data=None):
slug = None
-def generate_slug():
+def generate_slug(persistent_slug=''):
global slug
- slug = common.build_slug()
+ if persistent_slug:
+ slug = persistent_slug
+ else:
+ slug = common.build_slug()
download_count = 0
error404_count = 0
@@ -383,11 +386,11 @@ def force_shutdown():
func()
-def start(port, stay_open=False):
+def start(port, stay_open=False, persistent_slug=''):
"""
Start the flask web server.
"""
- generate_slug()
+ generate_slug(persistent_slug)
set_stay_open(stay_open)