MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / application_set_ui_config

Function application_set_ui_config

src/daemon/application.c:2615–2651  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2613}
2614
2615static cbm_daemon_runtime_application_status_t application_set_ui_config(
2616 cbm_daemon_application_t *application, cbm_daemon_application_session_t *session,
2617 const uint8_t *request, uint32_t request_length) {
2618 const uint8_t valid_mask =
2619 CBM_DAEMON_APPLICATION_UI_CONFIG_ENABLED | CBM_DAEMON_APPLICATION_UI_CONFIG_PORT;
2620 if (!session || !session->context_set || session->tool_profile != CBM_MCP_TOOL_PROFILE_ALL ||
2621 request_length != APPLICATION_UI_CONFIG_REQUEST_SIZE) {
2622 return CBM_DAEMON_RUNTIME_APPLICATION_REJECTED;
2623 }
2624 uint8_t update_mask = request[1];
2625 uint8_t enabled = request[2];
2626 uint32_t port = application_get_u32(request + 3);
2627 bool enabled_present = (update_mask & CBM_DAEMON_APPLICATION_UI_CONFIG_ENABLED) != 0;
2628 bool port_present = (update_mask & CBM_DAEMON_APPLICATION_UI_CONFIG_PORT) != 0;
2629 if (update_mask == 0 || (update_mask & (uint8_t)~valid_mask) != 0 ||
2630 (enabled_present ? enabled > 1U : enabled != 0U) ||
2631 (port_present ? port == 0 || request[3] != 0 || request[4] != 0 : port != 0U)) {
2632 return CBM_DAEMON_RUNTIME_APPLICATION_REJECTED;
2633 }
2634
2635 cbm_mutex_lock(&application->mutex);
2636 if (application->stopping) {
2637 cbm_mutex_unlock(&application->mutex);
2638 return CBM_DAEMON_RUNTIME_APPLICATION_UNAVAILABLE;
2639 }
2640 cbm_ui_config_t config;
2641 cbm_ui_config_load(&config);
2642 if (enabled_present) {
2643 config.ui_enabled = enabled != 0;
2644 }
2645 if (port_present) {
2646 config.ui_port = (int)port;
2647 }
2648 bool saved = cbm_ui_config_save(&config);
2649 cbm_mutex_unlock(&application->mutex);
2650 return saved ? CBM_DAEMON_RUNTIME_APPLICATION_OK : CBM_DAEMON_RUNTIME_APPLICATION_HANDLER_ERROR;
2651}
2652
2653static cbm_daemon_runtime_application_status_t application_ui_readiness_proof(
2654 cbm_daemon_application_t *application, const uint8_t *request, uint32_t request_length,

Callers 1

Calls 5

application_get_u32Function · 0.85
cbm_mutex_lockFunction · 0.85
cbm_mutex_unlockFunction · 0.85
cbm_ui_config_loadFunction · 0.85
cbm_ui_config_saveFunction · 0.85

Tested by

no test coverage detected