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

Function application_set_ui_config

src/daemon/application.c:2508–2544  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2506}
2507
2508static cbm_daemon_runtime_application_status_t application_set_ui_config(
2509 cbm_daemon_application_t *application, cbm_daemon_application_session_t *session,
2510 const uint8_t *request, uint32_t request_length) {
2511 const uint8_t valid_mask =
2512 CBM_DAEMON_APPLICATION_UI_CONFIG_ENABLED | CBM_DAEMON_APPLICATION_UI_CONFIG_PORT;
2513 if (!session || !session->context_set || session->tool_profile != CBM_MCP_TOOL_PROFILE_ALL ||
2514 request_length != APPLICATION_UI_CONFIG_REQUEST_SIZE) {
2515 return CBM_DAEMON_RUNTIME_APPLICATION_REJECTED;
2516 }
2517 uint8_t update_mask = request[1];
2518 uint8_t enabled = request[2];
2519 uint32_t port = application_get_u32(request + 3);
2520 bool enabled_present = (update_mask & CBM_DAEMON_APPLICATION_UI_CONFIG_ENABLED) != 0;
2521 bool port_present = (update_mask & CBM_DAEMON_APPLICATION_UI_CONFIG_PORT) != 0;
2522 if (update_mask == 0 || (update_mask & (uint8_t)~valid_mask) != 0 ||
2523 (enabled_present ? enabled > 1U : enabled != 0U) ||
2524 (port_present ? port == 0 || request[3] != 0 || request[4] != 0 : port != 0U)) {
2525 return CBM_DAEMON_RUNTIME_APPLICATION_REJECTED;
2526 }
2527
2528 cbm_mutex_lock(&application->mutex);
2529 if (application->stopping) {
2530 cbm_mutex_unlock(&application->mutex);
2531 return CBM_DAEMON_RUNTIME_APPLICATION_UNAVAILABLE;
2532 }
2533 cbm_ui_config_t config;
2534 cbm_ui_config_load(&config);
2535 if (enabled_present) {
2536 config.ui_enabled = enabled != 0;
2537 }
2538 if (port_present) {
2539 config.ui_port = (int)port;
2540 }
2541 bool saved = cbm_ui_config_save(&config);
2542 cbm_mutex_unlock(&application->mutex);
2543 return saved ? CBM_DAEMON_RUNTIME_APPLICATION_OK : CBM_DAEMON_RUNTIME_APPLICATION_HANDLER_ERROR;
2544}
2545
2546static cbm_daemon_runtime_application_status_t application_ui_readiness_proof(
2547 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