keep-alive

This commit is contained in:
MeexReay 2024-10-05 01:43:20 +03:00
parent 493a54ef6c
commit 1ae196d322

View File

@ -17,29 +17,30 @@ pub async fn handler_connection<S: HttpServer + Send + 'static + Sync>(
) { ) {
let Ok(addr) = sock.get_ref().peer_addr() else { return; }; let Ok(addr) = sock.get_ref().peer_addr() else { return; };
let req = match HttpRequest::read(sock.get_mut(), &addr).await { loop {
Ok(i) => i, let req = match HttpRequest::read(sock.get_mut(), &addr).await {
Err(e) => { Ok(i) => i,
server.on_error(e).await; Err(e) => {
return; server.on_error(e).await;
} return;
}; }
};
let resp = match server.on_request(&req).await { let resp = match server.on_request(&req).await {
Some(i) => i, Some(i) => i,
None => { None => {
return; return;
} }
}; };
match resp.write(sock.get_mut()).await { match resp.write(sock.get_mut()).await {
Ok(_) => {}, Ok(_) => {},
Err(e) => { Err(e) => {
server.on_error(e).await; server.on_error(e).await;
return; return;
}, },
}
} }
} }
#[macro_export] #[macro_export]
@ -55,37 +56,39 @@ pub async fn handler_flowgate<S: HttpServer + Send + 'static + Sync>(
server: Arc<S>, server: Arc<S>,
mut sock: Stream, mut sock: Stream,
) { ) {
let addr = match read_line_lf(sock.get_mut()).await { loop {
Ok(i) => i, let addr = match read_line_lf(sock.get_mut()).await {
Err(e) => { Ok(i) => i,
server.on_error(e).await; Err(e) => {
return; server.on_error(e).await;
return;
}
} }
} .to_socket_addrs()
.to_socket_addrs() .unwrap()
.unwrap() .collect::<Vec<SocketAddr>>()[0];
.collect::<Vec<SocketAddr>>()[0];
let req = match HttpRequest::read(sock.get_mut(), &addr).await { let req = match HttpRequest::read(sock.get_mut(), &addr).await {
Ok(i) => i, Ok(i) => i,
Err(e) => { Err(e) => {
server.on_error(e).await; server.on_error(e).await;
return; return;
}
};
let resp = match server.on_request(&req).await {
Some(i) => i,
None => {
return;
}
};
match resp.write(sock.get_mut()).await {
Ok(_) => {},
Err(e) => {
server.on_error(e).await;
return;
},
} }
};
let resp = match server.on_request(&req).await {
Some(i) => i,
None => {
return;
}
};
match resp.write(sock.get_mut()).await {
Ok(_) => {},
Err(e) => {
server.on_error(e).await;
return;
},
} }
} }