mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-04-29 10:10:19 +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()):
|
and _active_config.exists()):
|
||||||
enabled = True
|
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))
|
print(json.dumps(output_config))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -258,7 +258,18 @@ def get_config():
|
|||||||
"""Return the current configuration."""
|
"""Return the current configuration."""
|
||||||
default_config = {'domains': {}}
|
default_config = {'domains': {}}
|
||||||
config = kvstore.get_default('dynamicdns_config', '{}')
|
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):
|
def set_config(config):
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user