mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-01-21 07:55:00 +00:00
dynamicdns: Fix adding null domain into configuration
When old configuration is not set and is exported with new code into newer format, the result is a domain added with domain name 'null'. This causes issues with UI not showing configuration and with null domain being added into configurations of various daemons. Tests: - To reproduce the issue, switch to a revision with old dynamicdns code. Then switch to a latest version without the fix. A 'null' domain is added to configuration. - To reproduce the issue, switch to a revision with old dynamicdns code. Then switch to a latest version with the fix. A 'null' domain is not added to configuration. - With null domain in the configuration. Start FreedomBox with the fix. The null domain should be removed and null domain should not be announced to other daemons. Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org> Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
This commit is contained in:
parent
354985f97c
commit
d77f812d11
@ -106,7 +106,10 @@ def subcommand_export_config(_):
|
||||
and _active_config.exists()):
|
||||
enabled = True
|
||||
|
||||
output_config = {'enabled': enabled, 'domains': {domain['domain']: domain}}
|
||||
output_config = {'enabled': enabled, 'domains': {}}
|
||||
if domain['domain']:
|
||||
output_config['domains'][domain['domain']] = domain
|
||||
|
||||
print(json.dumps(output_config))
|
||||
|
||||
|
||||
|
||||
@ -258,7 +258,18 @@ def get_config():
|
||||
"""Return the current configuration."""
|
||||
default_config = {'domains': {}}
|
||||
config = kvstore.get_default('dynamicdns_config', '{}')
|
||||
return json.loads(config) or default_config
|
||||
config = json.loads(config) or default_config
|
||||
return _fix_corrupt_config(config)
|
||||
|
||||
|
||||
def _fix_corrupt_config(config):
|
||||
"""Fix malformed configuration result of bug in older version."""
|
||||
if 'null' not in config['domains']:
|
||||
return config
|
||||
|
||||
del config['domains']['null']
|
||||
set_config(config)
|
||||
return config
|
||||
|
||||
|
||||
def set_config(config):
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user