| 6628 | } |
| 6629 | |
| 6630 | static int config_ui_write(const char *key, const char *value) { |
| 6631 | cbm_ui_config_t ui; |
| 6632 | cbm_ui_config_load(&ui); |
| 6633 | if (strcmp(key, CBM_CONFIG_UI_ENABLED) == 0) { |
| 6634 | if (strcmp(value, "true") != 0 && strcmp(value, "false") != 0) { |
| 6635 | (void)fprintf(stderr, "error: %s must be true or false\n", key); |
| 6636 | return CLI_ERR; |
| 6637 | } |
| 6638 | ui.ui_enabled = strcmp(value, "true") == 0; |
| 6639 | } else { |
| 6640 | char *end = NULL; |
| 6641 | long port = strtol(value, &end, 10); |
| 6642 | if (!end || *end || port < 1 || port > 65535) { |
| 6643 | (void)fprintf(stderr, "error: %s must be a port between 1 and 65535\n", key); |
| 6644 | return CLI_ERR; |
| 6645 | } |
| 6646 | ui.ui_port = (int)port; |
| 6647 | } |
| 6648 | if (!cbm_ui_config_save(&ui)) { |
| 6649 | (void)fprintf(stderr, "error: could not write the UI configuration file\n"); |
| 6650 | return CLI_ERR; |
| 6651 | } |
| 6652 | return CLI_OK; |
| 6653 | } |
| 6654 | |
| 6655 | static const config_key_def_t *config_key_lookup(const char *key) { |
| 6656 | for (size_t i = 0; key && i < sizeof(CONFIG_KEYS) / sizeof(CONFIG_KEYS[0]); i++) { |
no test coverage detected