| 1825 | } |
| 1826 | |
| 1827 | static int sdsConfigSet(typeData data, sds value, int update, const char **err) { |
| 1828 | if (data.sds.is_valid_fn && !data.sds.is_valid_fn(value, err)) |
| 1829 | return 0; |
| 1830 | sds prev = *data.sds.config; |
| 1831 | *data.sds.config = (data.sds.convert_empty_to_null && (sdslen(value) == 0)) ? NULL : sdsdup(value); |
| 1832 | if (update && data.sds.update_fn && !data.sds.update_fn(*data.sds.config, prev, err)) { |
| 1833 | sdsfree(*data.sds.config); |
| 1834 | *data.sds.config = prev; |
| 1835 | return 0; |
| 1836 | } |
| 1837 | sdsfree(prev); |
| 1838 | return 1; |
| 1839 | } |
| 1840 | |
| 1841 | static void sdsConfigGet(client *c, typeData data) { |
| 1842 | if (*data.sds.config) { |