diff --git a/src/Config.py b/src/Config.py index 32d48d65..cb4ae2a7 100644 --- a/src/Config.py +++ b/src/Config.py @@ -13,6 +13,10 @@ class Config(object): self.rev = 3504 self.argv = argv self.action = None + self.pending_changes = {} + self.need_restart = False + self.keys_restart_need = set(["tor", "fileserver_port"]) + self.config_file = "zeronet.conf" self.createParser() self.createArguments() diff --git a/src/Ui/UiWebsocket.py b/src/Ui/UiWebsocket.py index 3240b30f..24f5faee 100644 --- a/src/Ui/UiWebsocket.py +++ b/src/Ui/UiWebsocket.py @@ -994,9 +994,16 @@ class UiWebsocket(object): config.saveValue(key, value) - instant_change_keys = ["language", "tor_use_bridges", "trackers_proxy"] - if key in instant_change_keys: - setattr(config, key, value) + if key not in config.keys_restart_need: + if value is None: # Default value + setattr(config, key, config.parser.get_default(key)) + setattr(config.arguments, key, config.parser.get_default(key)) + else: + setattr(config, key, value) + setattr(config.arguments, key, value) + else: + config.need_restart = True + config.pending_changes[key] = value if key == "language": import Translate