From: Maria Matejka Date: Wed, 10 Apr 2024 14:14:40 +0000 (+0200) Subject: BGP: Fixed corking of RX X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3685b0f9b6ada2d1e4efdcac3348785e466daf6e;p=thirdparty%2Fbird.git 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. --- diff --git a/proto/bgp/packets.c b/proto/bgp/packets.c index 77f106e22..e63d47b0e 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)