From c3698535e32c12437b0e4a5efe405484796ef803 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 aa7e187d..851143fa 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)