| 6792 | } |
| 6793 | |
| 6794 | static int config_ui_write(const char *key, const char *value) { |
| 6795 | cbm_ui_config_t ui; |
| 6796 | cbm_ui_config_load(&ui); |
| 6797 | if (strcmp(key, CBM_CONFIG_UI_ENABLED) == 0) { |
| 6798 | if (strcmp(value, "true") != 0 && strcmp(value, "false") != 0) { |
| 6799 | (void)fprintf(stderr, "error: %s must be true or false\n", key); |
| 6800 | return CLI_ERR; |
| 6801 | } |
| 6802 | ui.ui_enabled = strcmp(value, "true") == 0; |
| 6803 | } else { |
| 6804 | char *end = NULL; |
| 6805 | long port = strtol(value, &end, 10); |
| 6806 | if (!end || *end || port < 1 || port > 65535) { |
| 6807 | (void)fprintf(stderr, "error: %s must be a port between 1 and 65535\n", key); |
| 6808 | return CLI_ERR; |
| 6809 | } |
| 6810 | ui.ui_port = (int)port; |
| 6811 | } |
| 6812 | if (!cbm_ui_config_save(&ui)) { |
| 6813 | (void)fprintf(stderr, "error: could not write the UI configuration file\n"); |
| 6814 | return CLI_ERR; |
| 6815 | } |
| 6816 | return CLI_OK; |
| 6817 | } |
| 6818 | |
| 6819 | static const config_key_def_t *config_key_lookup(const char *key) { |
| 6820 | for (size_t i = 0; key && i < sizeof(CONFIG_KEYS) / sizeof(CONFIG_KEYS[0]); i++) { |
no test coverage detected