This commit is contained in:
Dominik Werder
2021-04-16 14:38:46 +02:00
parent f2e4ac3a35
commit 1150bb3c55
12 changed files with 462 additions and 59 deletions

View File

@@ -16,8 +16,11 @@ use sync::Arc;
use disk::cache::PreBinnedQuery;
use panic::{UnwindSafe, AssertUnwindSafe};
use bytes::Bytes;
use tokio::net::TcpStream;
use tokio::io::AsyncWriteExt;
pub async fn host(node_config: Arc<NodeConfig>) -> Result<(), Error> {
let rawjh = taskrun::spawn(raw_service(node_config.clone()));
let addr = SocketAddr::from(([0, 0, 0, 0], node_config.node.port));
let make_service = make_service_fn({
move |conn| {
@@ -34,6 +37,7 @@ pub async fn host(node_config: Arc<NodeConfig>) -> Result<(), Error> {
}
});
Server::bind(&addr).serve(make_service).await?;
rawjh.await;
Ok(())
}
@@ -263,3 +267,23 @@ async fn prebinned(req: Request<Body>, node_config: Arc<NodeConfig>) -> Result<R
};
Ok(ret)
}
async fn raw_service(node_config: Arc<NodeConfig>) -> Result<(), Error> {
let lis = tokio::net::TcpListener::bind("0.0.0.0:5555").await?;
loop {
match lis.accept().await {
Ok((stream, addr)) => {
taskrun::spawn(raw_conn_handler(stream, addr));
}
Err(e) => Err(e)?
}
}
Ok(())
}
async fn raw_conn_handler(mut stream: TcpStream, addr: SocketAddr) -> Result<(), Error> {
info!("RAW HANDLER for {:?}", addr);
stream.write_i32_le(123).await?;
stream.flush().await?;
Ok(())
}