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: Make app icons larger.
- frontpage: Center shortcut text under icons. - frontpage: Center shortcut text under icons.
- frontpage: Move info to bottom and center. - 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 ## [0.11.0] - 2016-09-21
### Added ### Added

View File

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