clan-sidebus/sidebus-broker/src/main.rs

34 lines
954 B
Rust
Raw Normal View History

mod vsock;
use clap::Parser;
use tracing::info;
#[derive(Parser)]
#[command(version, about, long_about = None)]
struct BrokerCli {}
#[tokio::main]
async fn main() -> eyre::Result<()> {
tracing_subscriber::fmt::init();
let _cli = BrokerCli::parse();
vsock::ListenerBuilder::new(vsock::VsockAddr::new(vsock::VMADDR_CID_HOST, 4269))
.with_label("VM Bus")
.listen(async |client| {
let session_bus = zbus::connection::Builder::session()
.unwrap()
.p2p() /* i.e. "raw connection, don't send Hello" */
.build()
.await
.unwrap();
info!(guid = %session_bus.server_guid(), "connected to session bus");
let client_conn = client.build(session_bus.server_guid().into()).await?;
sidebus_common::raw::splice_conns(client_conn, session_bus).await;
Ok(())
})
.await?;
Ok(())
}