diff options
| author | Dimitri Staessens <dimitri@ouroboros.rocks> | 2026-05-21 22:49:15 +0200 |
|---|---|---|
| committer | Sander Vrijders <sander@ouroboros.rocks> | 2026-05-22 08:13:50 +0200 |
| commit | 5d0cf67a38695ebe65a0506b5c6d6c0d229a3b3e (patch) | |
| tree | 8b07956c2944ba48ef0fa2dc03fb0b0ee0a233cc /src/tools/irm/irm_bind_ipcp.c | |
| parent | 3ad96a09df9dfd8e63e494887f7ef5bc07f244b5 (diff) | |
| download | ouroboros-5d0cf67a38695ebe65a0506b5c6d6c0d229a3b3e.tar.gz ouroboros-5d0cf67a38695ebe65a0506b5c6d6c0d229a3b3e.zip | |
lib: Add FIN and receive-side linger for msg deallocbe
qos_msg flows had no end-of-stream signal: a deallocating sender
relied on the peer's inactivity timers (~30 s) to notice. Worse, the
dealloc-linger path was bugged: a receiver that called flow_dealloc
would stop draining its rx_rb while the peer's tail retransmits kept
arriving. Peer retransmitted into a black hole until its own dealloc
fired, and the whole shutdown stretched takes t_a time.
Generalizes frcti_stream_fin_snd to frcti_fin_snd; for msg mode emit a
FRCT_FIN-only control packet with the FIN seqno boundary in
pci->ackno. Receiver-side frcti_rcv latches rcv_fin_seen and stores
the boundary on FRCT_FIN-without-DATA.
Fix comment on the FRCT flags.
Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks>
Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'src/tools/irm/irm_bind_ipcp.c')
0 files changed, 0 insertions, 0 deletions
