From 0282fe7e1760579f1b851b0a154f30e8adbe9396 Mon Sep 17 00:00:00 2001 From: evgeny Date: Sun, 11 Oct 2026 13:27:48 +0200 Subject: [PATCH] Keep newer INFO probes alive when old queued probes expire --- src/stream/stream_network.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/stream/stream_network.c b/src/stream/stream_network.c index 16fe298e..eaea764d 100644 --- a/src/stream/stream_network.c +++ b/src/stream/stream_network.c @@ -774,6 +774,7 @@ static void expire_controls(struct stream_peer *p, uint64_t now) { if (stream_wire_parse(e->dgram, e->len, &m) == STREAM_OK) { int outgoing = m.command == STREAM_CMD_INFO_REQ || m.command == STREAM_CMD_SUBSCRIBE; struct STREAM_RECEIVE *f = flow_find(p, &m, outgoing); + if (f && m.command == STREAM_CMD_INFO_REQ && (m.length != 8 || stream_read_be(m.payload, 8) != f->probe)) f = NULL; if (f && (outgoing || m.command == STREAM_CMD_ACCEPT)) flow_close(f, STREAM_REASON_OVERLOAD, 0); DEBUG_WARN(DEBUG_CATEGORY_STREAM, "stream control expired peer=%llx command=%u handle=%llu age=%llu", (unsigned long long)p->node_id, m.command, (unsigned long long)m.handle, (unsigned long long)(now - queued_ms));