Flush tcp streap after write

This commit is contained in:
Mauro D 2023-08-16 16:22:09 +02:00
parent f7ee2f6423
commit dc960fba63
2 changed files with 18 additions and 6 deletions

View file

@ -118,6 +118,7 @@ impl Session<TcpStream> {
tracing::debug!(parent: &session.span, event = "error", reason = %err, "Failed to write greeting.");
return Err(());
}
let _ = session.stream.flush().await;
// Split stream into read and write halves
let (stream_rx, stream_tx) = tokio::io::split(session.stream);
@ -206,6 +207,7 @@ impl Session<TlsStream<TcpStream>> {
tracing::debug!(parent: &span, event = "error", reason = %err, "Failed to write greeting.");
return Err(());
}
let _ = stream.flush().await;
// Spit stream into read and write halves
let (stream_rx, stream_tx) = tokio::io::split(stream);

View file

@ -64,9 +64,14 @@ pub fn spawn_writer(mut stream: Event, span: tracing::Span) -> mpsc::Sender<Even
)
);*/
if let Err(err) = stream_tx.write_all(bytes.as_ref()).await {
debug!("Failed to write to stream: {}", err);
break 'outer;
match stream_tx.write_all(bytes.as_ref()).await {
Ok(_) => {
let _ = stream_tx.flush().await;
}
Err(err) => {
debug!("Failed to write to stream: {}", err);
break 'outer;
}
}
}
Event::Upgrade(channel) => {
@ -93,9 +98,14 @@ pub fn spawn_writer(mut stream: Event, span: tracing::Span) -> mpsc::Sender<Even
while let Some(event) = rx.recv().await {
match event {
Event::Bytes(bytes) => {
if let Err(err) = stream_tx.write_all(bytes.as_ref()).await {
debug!("Failed to write to stream: {}", err);
break 'outer;
match stream_tx.write_all(bytes.as_ref()).await {
Ok(_) => {
let _ = stream_tx.flush().await;
}
Err(err) => {
debug!("Failed to write to stream: {}", err);
break 'outer;
}
}
}
_ => {