receiver: be extra cautious when writing key-value pairs for settings
This commit is contained in:
parent
e6947d95d8
commit
3e4c09380a
|
|
@ -279,11 +279,13 @@ class Settings(Setting):
|
||||||
# Remember the value we're trying to set, even if the write fails.
|
# Remember the value we're trying to set, even if the write fails.
|
||||||
# This way even if the device is offline or some other error occurs,
|
# This way even if the device is offline or some other error occurs,
|
||||||
# the last value we've tried to write is remembered in the configuration.
|
# the last value we've tried to write is remembered in the configuration.
|
||||||
self._value[str(key)] = value
|
try:
|
||||||
if self.persist and self._device.persister:
|
data_bytes = self._validator.prepare_write(int(key), value)
|
||||||
self._device.persister[self.name] = self._value
|
self._value[str(key)] = value
|
||||||
|
if self.persist and self._device.persister:
|
||||||
data_bytes = self._validator.prepare_write(int(key), value)
|
self._device.persister[self.name] = self._value
|
||||||
|
except ValueError:
|
||||||
|
data_bytes = value = None
|
||||||
if data_bytes is not None:
|
if data_bytes is not None:
|
||||||
if _log.isEnabledFor(_DEBUG):
|
if _log.isEnabledFor(_DEBUG):
|
||||||
_log.debug('%s: settings prepare key value write(%s,%s) => %r', self.name, key, value, data_bytes)
|
_log.debug('%s: settings prepare key value write(%s,%s) => %r', self.name, key, value, data_bytes)
|
||||||
|
|
@ -291,7 +293,6 @@ class Settings(Setting):
|
||||||
if not reply:
|
if not reply:
|
||||||
# tell whomever is calling that the write failed
|
# tell whomever is calling that the write failed
|
||||||
return None
|
return None
|
||||||
|
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue