cleanup the ephemeral hidden service when GUI server is stopped, but don't disconnect from Tor

This commit is contained in:
Miguel Jacq 2017-12-07 16:08:03 +11:00
parent 796a4b3b5d
commit e7dd78dba7
No known key found for this signature in database
GPG Key ID: EEA4341C6D97A0B6
2 changed files with 23 additions and 18 deletions

View File

@ -422,7 +422,7 @@ class Onion(object):
return onion_host
def cleanup(self):
def cleanup(self, stop_tor=True):
"""
Stop onion services that were created earlier. If there's a tor subprocess running, kill it.
"""
@ -436,18 +436,21 @@ class Onion(object):
pass
self.service_id = None
if stop_tor:
# Stop tor process
if self.tor_proc:
self.tor_proc.terminate()
time.sleep(0.2)
if not self.tor_proc.poll():
try:
self.tor_proc.kill()
except:
pass
self.tor_proc = None
# Reset other Onion settings
self.connected_to_tor = False
self.stealth = False
self.service_id = None
try:
# Delete the temporary tor data directory

View File

@ -355,6 +355,8 @@ class OnionShareGui(QtWidgets.QMainWindow):
# Probably we had no port to begin with (Onion service didn't start)
pass
self.app.cleanup()
# Remove ephemeral service, but don't disconnect from Tor
self.onion.cleanup(stop_tor=False)
self.filesize_warning.hide()
self.stop_server_finished.emit()