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

Function ipc_roundtrip_server

tests/test_daemon_ipc.c:2032–2066  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2030}
2031
2032static void *ipc_roundtrip_server(void *opaque) {
2033 static const uint8_t expected_request[] = {0x00, 'r', 'e', 'q', 0xff};
2034 static const uint8_t response[] = {'o', 'k', 0x00, 0x7f};
2035 ipc_roundtrip_server_t *server = (ipc_roundtrip_server_t *)opaque;
2036 cbm_daemon_ipc_connection_t *connection = NULL;
2037 cbm_daemon_frame_t frame = {0};
2038 uint8_t *payload = NULL;
2039
2040 server->result = 1;
2041 if (cbm_daemon_ipc_accept(server->listener, 2000, &connection) != 1 || !connection) {
2042 goto done;
2043 }
2044 server->peer_pid = cbm_daemon_ipc_connection_peer_pid(connection);
2045 if (server->peer_pid == 0) {
2046 goto done;
2047 }
2048 if (cbm_daemon_ipc_receive_frame(connection, 2000, &frame, &payload) != 1) {
2049 goto done;
2050 }
2051 if (frame.type != CBM_DAEMON_FRAME_REQUEST || frame.flags != 0x1234 ||
2052 frame.length != sizeof(expected_request) || !payload ||
2053 memcmp(payload, expected_request, sizeof(expected_request)) != 0) {
2054 goto done;
2055 }
2056 if (!cbm_daemon_ipc_send_frame(connection, CBM_DAEMON_FRAME_RESPONSE, 0x00a5, response,
2057 (uint32_t)sizeof(response))) {
2058 goto done;
2059 }
2060 server->result = 0;
2061
2062done:
2063 free(payload); /* receive_frame returns a malloc-owned payload */
2064 cbm_daemon_ipc_connection_close(connection);
2065 return NULL;
2066}
2067
2068TEST(daemon_ipc_local_frame_roundtrip) {
2069 static const char key[] = "1111222233334444";

Callers

nothing calls this directly

Tested by

no test coverage detected