tor: Only register service if module setup is complete

This commit is contained in:
James Valleroy 2016-12-04 12:53:40 -05:00
parent 941259df1e
commit 5f1c72d647
No known key found for this signature in database
GPG Key ID: 77C0C75E7B650808
2 changed files with 34 additions and 28 deletions

View File

@ -28,6 +28,8 @@ All notable changes to this project will be documented in this file.
- frontpage: Make app icons larger.
- frontpage: Center shortcut text under icons.
- frontpage: Move info to bottom and center.
- firewall: Only show services that have completed setup.
- firewall: Collapse port lists so they are hidden by default.
## [0.11.0] - 2016-09-21
### Added

View File

@ -59,38 +59,42 @@ def init():
menu = cfg.main_menu.get('apps:index')
menu.add_urlname(title, 'glyphicon-eye-close', 'tor:index')
global socks_service
socks_service = service_module.Service(
'tor-socks', _('Tor Anonymity Network'), ports=['tor-socks'],
is_external=False, is_enabled=utils.is_enabled,
is_running=utils.is_running)
setup_helper = globals()['setup_helper']
needs_setup = setup_helper.get_state() == 'needs-setup'
global bridge_service
bridge_service = service_module.Service(
'tor-bridge', _('Tor Bridge Relay'),
ports=['tor-orport', 'tor-obfs3', 'tor-obfs4'],
is_external=True, is_enabled=utils.is_enabled,
is_running=utils.is_running)
if not needs_setup:
global socks_service
socks_service = service_module.Service(
'tor-socks', _('Tor Anonymity Network'), ports=['tor-socks'],
is_external=False, is_enabled=utils.is_enabled,
is_running=utils.is_running)
# Register hidden service name with Name Services module.
status = utils.get_status()
hostname = status['hs_hostname']
hs_virtports = [port['virtport'] for port in status['hs_ports']]
global bridge_service
bridge_service = service_module.Service(
'tor-bridge', _('Tor Bridge Relay'),
ports=['tor-orport', 'tor-obfs3', 'tor-obfs4'],
is_external=True, is_enabled=utils.is_enabled,
is_running=utils.is_running)
if status['enabled'] and status['is_running'] and \
status['hs_enabled'] and status['hs_hostname']:
hs_services = []
for service_type in SERVICES:
if str(service_type[2]) in hs_virtports:
hs_services.append(service_type[0])
else:
hostname = None
hs_services = None
# Register hidden service name with Name Services module.
status = utils.get_status()
hostname = status['hs_hostname']
hs_virtports = [port['virtport'] for port in status['hs_ports']]
domain_added.send_robust(
sender='tor', domain_type='hiddenservice',
name=hostname, description=_('Tor Hidden Service'),
services=hs_services)
if status['enabled'] and status['is_running'] and \
status['hs_enabled'] and status['hs_hostname']:
hs_services = []
for service_type in SERVICES:
if str(service_type[2]) in hs_virtports:
hs_services.append(service_type[0])
else:
hostname = None
hs_services = None
domain_added.send_robust(
sender='tor', domain_type='hiddenservice',
name=hostname, description=_('Tor Hidden Service'),
services=hs_services)
def setup(helper, old_version=None):