use tokio::net::TcpListener;
use tokio_fastcgi::{Requests, RequestResult};
#[tokio::main]
async fn main() {
let addr = "127.0.0.1:8080";
let listener = TcpListener::bind(addr).await.unwrap();
loop {
let connection = listener.accept().await;
match connection {
Err(err) => {
println!("Establishing connection failed: {}", err);
break;
},
Ok((mut stream, address)) => {
println!("Connection from {}", address);
tokio::spawn(async move {
let mut requests = Requests::from_split_socket(stream.split(), 10, 10);
while let Ok(Some(request)) = requests.next().await {
if let Err(err) = request.process(|_request| async move {
RequestResult::Complete(0)
}).await {
println!("Processing request failed: {}", err);
}
}
});
}
}
}
}