MCPcopy Create free account
hub / github.com/ScriptedAlchemy/tracedecay / serve_socket_client

Function serve_socket_client

src/daemon.rs:1961–1981  ·  view source on GitHub ↗
(stream: tokio::net::UnixStream, engine: DaemonEngine)

Source from the content-addressed store, hash-verified

1959
1960#[cfg(unix)]
1961async fn serve_socket_client(stream: tokio::net::UnixStream, engine: DaemonEngine) -> Result<()> {
1962 let mut transport = UnixStreamTransport::new(stream);
1963 let Some(line) = transport.read_line().await? else {
1964 return Ok(());
1965 };
1966 let handshake = DaemonHandshake::from_line(&line)?;
1967 engine.log_client_version_skew(&handshake).await;
1968 if handshake.project_path.is_some() {
1969 let server = match Box::pin(engine.project_server(&handshake)).await {
1970 Ok(server) => server,
1971 Err(e) => {
1972 write_project_open_error(&mut transport, &e).await?;
1973 return Err(e);
1974 }
1975 };
1976 Box::pin(server.run_connection_with_timings(&mut transport, handshake.timings)).await?;
1977 } else {
1978 serve_projectless_client(&mut transport, &handshake.client_identity).await?;
1979 }
1980 Ok(())
1981}
1982
1983async fn open_project_for_handshake(
1984 project_path: &Path,

Calls 6

write_project_open_errorFunction · 0.85
serve_projectless_clientFunction · 0.85
project_serverMethod · 0.80
read_lineMethod · 0.45