From f4d4f81c7dd551e9759f2bb76aceac74a596a5f5 Mon Sep 17 00:00:00 2001 From: Maria Matejka Date: Wed, 10 Apr 2024 16:14:40 +0200 Subject: [PATCH] BGP: Fixed corking of RX If cork occurred after some incoming data had been already processed, BGP incorrectly processed them again after uncorking because it forgot to store the actual socket state. Now storing the socket state (done at the end of bgp_rx()) and therefore the bug is fixed. --- proto/bgp/packets.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto/bgp/packets.c b/proto/bgp/packets.c index 2aa5be4f..c32053d7 100644 --- a/proto/bgp/packets.c +++ b/proto/bgp/packets.c @@ -3500,7 +3500,7 @@ bgp_rx(sock *sk, uint size) { sk_pause_rx(p->p.loop, sk); BGP_TRACE(D_PACKETS, "Corked"); - return 0; + break; } for(i=0; i<16; i++) if (pkt_start[i] != 0xff)