]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
BGP: set free bind also for connect sockets if configured
authorMaria Matejka <mq@ucw.cz>
Mon, 6 Mar 2023 19:00:01 +0000 (20:00 +0100)
committerMaria Matejka <mq@ucw.cz>
Tue, 4 Apr 2023 15:00:59 +0000 (17:00 +0200)
proto/bgp/bgp.c

index 328f6cf4a554fb4a063d8763aba53a6ae32b63ce..41df59bbce27c2f22225fa85e845fc2041db5991 100644 (file)
@@ -365,8 +365,7 @@ bgp_startup(struct bgp_proto *p)
   if (p->postponed_sk)
   {
     /* Apply postponed incoming connection */
-    sk_unmain(p->postponed_sk);
-    sk_start(p->postponed_sk);
+    sk_reloop(p->postponed_sk, p->p.loop);
 
     bgp_setup_conn(p, &p->incoming_conn);
     bgp_setup_sk(&p->incoming_conn, p->postponed_sk);
@@ -1243,7 +1242,7 @@ bgp_connect(struct bgp_proto *p)  /* Enter Connect state and start establishing c
   s->tos = IP_PREC_INTERNET_CONTROL;
   s->password = p->cf->password;
   s->tx_hook = bgp_connected;
-  s->flags = SKF_THREAD;
+  s->flags = p->cf->free_bind ? SKF_FREEBIND : 0;
   BGP_TRACE(D_EVENTS, "Connecting to %I%J from local address %I%J",
            s->daddr, ipa_is_link_local(s->daddr) ? p->cf->iface : NULL,
            s->saddr, ipa_is_link_local(s->saddr) ? s->iface : NULL);