summaryrefslogtreecommitdiff
path: root/src/lib/timerwheel.c
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri@ouroboros.rocks>2022-03-28 20:29:03 +0200
committerSander Vrijders <sander@ouroboros.rocks>2022-03-30 15:12:25 +0200
commit64cbe652a72ac81a3d5efc4bb01d25dd52166137 (patch)
tree9d801d60aafae22d0de4602bdb2fde4217f5a33d /src/lib/timerwheel.c
parentefe850f4f90967649cdb27cfa29ca0a17127f932 (diff)
downloadouroboros-64cbe652a72ac81a3d5efc4bb01d25dd52166137.tar.gz
ouroboros-64cbe652a72ac81a3d5efc4bb01d25dd52166137.zip
lib: Fix unidirectional FRCT traffic handling
Unidirectional traffic has one of the peers only send bare FRCT packets. These never set a DRF, since they have no sequence number. At the receiver, all these ACKs and window updates were always dropped as the receiver connection record was timed out. Also fixes a SEGV if flow control kicks in (passing NULL timeout to pthread_cond_timedwait). Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'src/lib/timerwheel.c')
-rw-r--r--src/lib/timerwheel.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/src/lib/timerwheel.c b/src/lib/timerwheel.c
index cfdf2c9f..3225bf35 100644
--- a/src/lib/timerwheel.c
+++ b/src/lib/timerwheel.c
@@ -228,7 +228,6 @@ static void timerwheel_move(void)
goto flow_down;
rslot = (rslot + slot + 1) & (RXMQ_SLOTS - 1);
-
#ifdef RXM_BLOCKING
if (ipcp_sdb_reserve(&sdb, r->len) < 0)
#else
@@ -249,7 +248,6 @@ static void timerwheel_move(void)
/* Retransmit the copy. */
pci->ackno = hton32(rcv_lwe);
-
#ifdef RXM_BLOCKING
if (shm_rbuff_write_b(f->tx_rb, idx, NULL) < 0)
#else