tokio::select version
This commit is contained in:
parent
9d89ad1d1d
commit
47786912c8
1 changed files with 24 additions and 32 deletions
|
|
@ -50,8 +50,9 @@ pub async fn handle_request(socket: TcpStream, upstream: TcpStream) -> Result<()
|
|||
let mut farmed_server_read = FramedRead::new(server_read, LinesCodec::new());
|
||||
let mut framed_server_write = FramedWrite::new(server_write, LinesCodec::new());
|
||||
|
||||
let read_client_write_upstream = tokio::spawn(async move {
|
||||
while let Some(response) = framed_client_read.next().await {
|
||||
loop {
|
||||
tokio::select! {
|
||||
Some(response) = framed_client_read.next() => {
|
||||
match response {
|
||||
Ok(message) => {
|
||||
info!("Send upstream: {message}");
|
||||
|
|
@ -59,16 +60,11 @@ pub async fn handle_request(socket: TcpStream, upstream: TcpStream) -> Result<()
|
|||
}
|
||||
Err(err) => {
|
||||
error!("Error reading from client: {err}");
|
||||
return Err(err);
|
||||
return Err(err.into());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Ok(())
|
||||
});
|
||||
|
||||
let read_upstream_write_client = tokio::spawn(async move {
|
||||
while let Some(response) = farmed_server_read.next().await {
|
||||
Some(response) = farmed_server_read.next() => {
|
||||
match response {
|
||||
Ok(message) => {
|
||||
info!("Send to client: {message}");
|
||||
|
|
@ -76,16 +72,12 @@ pub async fn handle_request(socket: TcpStream, upstream: TcpStream) -> Result<()
|
|||
}
|
||||
Err(err) => {
|
||||
error!("Error reading from server: {err}");
|
||||
return Err(err);
|
||||
return Err(err.into());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Ok(())
|
||||
});
|
||||
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn replace_address(message: String) -> String {
|
||||
|
|
|
|||
Loading…
Reference in a new issue