| 1749 | } |
| 1750 | |
| 1751 | void cbm_mcp_server_free(cbm_mcp_server_t *srv) { |
| 1752 | if (!srv) { |
| 1753 | return; |
| 1754 | } |
| 1755 | if (srv->autoindex_active) { |
| 1756 | cbm_thread_join(&srv->autoindex_tid); |
| 1757 | } |
| 1758 | if (srv->owns_store && srv->store) { |
| 1759 | cbm_store_close(srv->store); |
| 1760 | } |
| 1761 | free(srv->current_project); |
| 1762 | free(srv->allowed_root); |
| 1763 | free(srv->active_request_id_str); |
| 1764 | cbm_mutex_destroy(&srv->request_scope_mutex); |
| 1765 | free(srv); |
| 1766 | } |
| 1767 | |
| 1768 | /* ── Idle store eviction ──────────────────────────────────────── */ |
| 1769 | |