catch exceptions when cleaning up hidden services

This commit is contained in:
Micah Lee 2015-06-16 12:33:56 -07:00
parent 2e39382126
commit 0350cb3cdc

View File

@ -67,19 +67,25 @@ class OnionShare(object):
self.cleanup_filenames = [] self.cleanup_filenames = []
def cleanup(self): def cleanup(self):
if self.controller: # cleanup hidden service
# Get fresh hidden services (maybe changed since last time) try:
# and remove ourselves if self.controller:
hsdic = self.controller.get_conf_map('HiddenServiceOptions') or { # Get fresh hidden services (maybe changed since last time)
'HiddenServiceDir': [], 'HiddenServicePort': [] # and remove ourselves
} hsdic = self.controller.get_conf_map('HiddenServiceOptions') or {
if self.hidserv_dir and self.hidserv_dir in hsdic.get('HiddenServiceDir', []): 'HiddenServiceDir': [], 'HiddenServicePort': []
dropme = hsdic['HiddenServiceDir'].index(self.hidserv_dir) }
del hsdic['HiddenServiceDir'][dropme] if self.hidserv_dir and self.hidserv_dir in hsdic.get('HiddenServiceDir', []):
del hsdic['HiddenServicePort'][dropme] dropme = hsdic['HiddenServiceDir'].index(self.hidserv_dir)
self.controller.set_options(hsdic2list(hsdic)) del hsdic['HiddenServiceDir'][dropme]
# Politely close the controller del hsdic['HiddenServicePort'][dropme]
self.controller.close() self.controller.set_options(hsdic2list(hsdic))
# Politely close the controller
self.controller.close()
except:
pass
# cleanup files
for filename in self.cleanup_filenames: for filename in self.cleanup_filenames:
if os.path.isfile(filename): if os.path.isfile(filename):
os.remove(filename) os.remove(filename)