aboutsummaryrefslogtreecommitdiff
path: root/embassy-net
diff options
context:
space:
mode:
authorSamuel Hicks <[email protected]>2024-07-19 17:45:29 +0100
committerSamuel Hicks <[email protected]>2024-07-19 17:45:29 +0100
commite6f4db507d62178ddb05a4569a9f9352a25222e0 (patch)
tree51fe97b9cc0669efd086c15b9d3ed999044d7b57 /embassy-net
parent2766993099b6604739ae25724aa2f6a9877d9902 (diff)
net/tcp: fix flush() waiting forever if socket is reset with pending write data
Diffstat (limited to 'embassy-net')
-rw-r--r--embassy-net/src/tcp.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/embassy-net/src/tcp.rs b/embassy-net/src/tcp.rs
index be0e1a129..18200287e 100644
--- a/embassy-net/src/tcp.rs
+++ b/embassy-net/src/tcp.rs
@@ -515,7 +515,7 @@ impl<'d> TcpIo<'d> {
515 async fn flush(&mut self) -> Result<(), Error> { 515 async fn flush(&mut self) -> Result<(), Error> {
516 poll_fn(move |cx| { 516 poll_fn(move |cx| {
517 self.with_mut(|s, _| { 517 self.with_mut(|s, _| {
518 let data_pending = s.send_queue() > 0; 518 let data_pending = (s.send_queue() > 0) && s.state() != tcp::State::Closed;
519 let fin_pending = matches!( 519 let fin_pending = matches!(
520 s.state(), 520 s.state(),
521 tcp::State::FinWait1 | tcp::State::Closing | tcp::State::LastAck 521 tcp::State::FinWait1 | tcp::State::Closing | tcp::State::LastAck