aboutsummaryrefslogtreecommitdiffstats
path: root/crates/daemon/src/server.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/daemon/src/server.rs')
-rw-r--r--crates/daemon/src/server.rs73
1 files changed, 34 insertions, 39 deletions
diff --git a/crates/daemon/src/server.rs b/crates/daemon/src/server.rs
index 97c4fe48..7ba8312c 100644
--- a/crates/daemon/src/server.rs
+++ b/crates/daemon/src/server.rs
@@ -1,14 +1,17 @@
+use std::os::unix::net::SocketAddr;
+use std::path::PathBuf;
+
use eyre::Result;
+use eyre::{OptionExt, WrapErr};
+#[cfg(unix)]
+use crate::api::server::{control::ControlService, history::HistoryGrpcService};
use crate::{
aclient::settings::Settings,
- components::{history::HistoryGrpcService, semantic::SemanticGrpcService},
- daemon::DaemonHandle,
- generated::{
- control::{ControlService, control_server::ControlServer},
- history::history_server::HistoryServer,
- semantic::semantic_server::SemanticServer,
+ api::generated::{
+ control::control_server::ControlServer, history::history_server::HistoryServer,
},
+ daemon::DaemonHandle,
};
/// Run the gRPC server with the given services.
@@ -19,7 +22,6 @@ use crate::{
pub(crate) fn run_grpc_server(
settings: &Settings,
history_service: HistoryServer<HistoryGrpcService>,
- semantic_service: SemanticServer<SemanticGrpcService>,
control_service: ControlServer<ControlService>,
handle: DaemonHandle,
) -> Result<()> {
@@ -28,42 +30,36 @@ pub(crate) fn run_grpc_server(
let socket_path = settings.daemon.socket_path.clone();
- let (uds, cleanup) = if cfg!(target_os = "linux") && settings.daemon.systemd_socket {
- #[cfg(target_os = "linux")]
- {
- use eyre::{OptionExt, WrapErr};
- use std::os::unix::net::SocketAddr;
- use std::path::PathBuf;
- tracing::info!("getting systemd socket");
- let listener = listenfd::ListenFd::from_env()
- .take_unix_listener(0)?
- .ok_or_eyre("missing systemd socket")?;
- listener.set_nonblocking(true)?;
- let actual_path: Result<PathBuf, eyre::Report> = listener
- .local_addr()
- .context("getting systemd socket's path")
- .and_then(|addr: SocketAddr| {
- addr.as_pathname()
- .ok_or_eyre("systemd socket missing path")
- .map(|path: &std::path::Path| path.to_owned())
- });
- match actual_path {
- Ok(actual_path) => {
- tracing::info!("listening on systemd socket: {actual_path:?}");
- if actual_path != std::path::Path::new(&socket_path) {
- tracing::warn!(
- "systemd socket is not at configured client path: {socket_path:?}"
- );
- }
- }
- Err(err) => {
+ let (uds, cleanup) = if settings.daemon.systemd_socket {
+ tracing::info!("getting systemd socket");
+ let listener = listenfd::ListenFd::from_env()
+ .take_unix_listener(0)?
+ .ok_or_eyre("missing systemd socket")?;
+ listener.set_nonblocking(true)?;
+ let actual_path: Result<PathBuf, eyre::Report> = listener
+ .local_addr()
+ .context("getting systemd socket's path")
+ .and_then(|addr: SocketAddr| {
+ addr.as_pathname()
+ .ok_or_eyre("systemd socket missing path")
+ .map(|path: &std::path::Path| path.to_owned())
+ });
+ match actual_path {
+ Ok(actual_path) => {
+ tracing::info!("listening on systemd socket: {actual_path:?}");
+ if actual_path != std::path::Path::new(&socket_path) {
tracing::warn!(
- "could not detect systemd socket path, ensure that it's at the configured path: {socket_path:?}, error: {err:?}"
+ "systemd socket is not at configured client path: {socket_path:?}"
);
}
}
- (UnixListener::from_std(listener)?, false)
+ Err(err) => {
+ tracing::warn!(
+ "could not detect systemd socket path, ensure that it's at the configured path: {socket_path:?}, error: {err:?}"
+ );
+ }
}
+ (UnixListener::from_std(listener)?, false)
} else {
tracing::info!("listening on unix socket {socket_path:?}");
(UnixListener::bind(socket_path.clone())?, true)
@@ -101,7 +97,6 @@ pub(crate) fn run_grpc_server(
if let Err(e) = Server::builder()
.add_service(history_service)
- .add_service(semantic_service)
.add_service(control_service)
.serve_with_incoming_shutdown(uds_stream, shutdown_signal)
.await