From: Katerina Kubecova Date: Thu, 4 Sep 2025 08:56:44 +0000 (+0200) Subject: BGP: Fixing an unlikely situation, when listening socket is created too late. X-Git-Tag: v3.0.5~10 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=dbd353ededd0539a823110dd5fa20a1f7e441a5f;p=thirdparty%2Fbird.git BGP: Fixing an unlikely situation, when listening socket is created too late. closes #298 --- diff --git a/proto/bgp/bgp.c b/proto/bgp/bgp.c index aaf8c96c3..62bae0cc0 100644 --- a/proto/bgp/bgp.c +++ b/proto/bgp/bgp.c @@ -1174,6 +1174,15 @@ bgp_connect_timeout(timer *t) if (p->p.proto_state == PS_START) { bgp_close_conn(conn); + + LOCK_DOMAIN(rtable, bgp_listen_domain); + if (p->listen.sock->sk == NULL) + { + log(L_WARN "%s: Creating listening socket takes suspiciously long. Reentering connect timeout."); + bgp_start_timer(p, conn->connect_timer, p->cf->connect_delay_time); + } + UNLOCK_DOMAIN(rtable, bgp_listen_domain); + bgp_connect(p); } else