]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: bgp_getsockanme is connection oriented
authorDonald Sharp <sharpd@nvidia.com>
Tue, 17 Dec 2024 20:38:01 +0000 (15:38 -0500)
committerDonald Sharp <sharpd@nvidia.com>
Fri, 10 Jan 2025 15:06:16 +0000 (10:06 -0500)
Let's make it so.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
bgpd/bgp_fsm.c
bgpd/bgp_network.c
bgpd/bgp_network.h

index 3d02214ca9c26d1d65dbbade4a764ef4b0f2eb69..3389f9afd9c052c6daed43830550cf0d6027cb36 100644 (file)
@@ -1819,8 +1819,8 @@ static void bgp_connect_in_progress_update_connection(struct peer_connection *co
 {
        struct peer *peer = connection->peer;
 
-       bgp_updatesockname(peer, connection);
-       if (!peer->su_remote && !BGP_CONNECTION_SU_UNSPEC(peer->connection)) {
+       bgp_updatesockname(connection);
+       if (!peer->su_remote && !BGP_CONNECTION_SU_UNSPEC(connection)) {
                /* if connect initiated, then dest port and dest addresses are well known */
                peer->su_remote = sockunion_dup(&connection->su);
                if (sockunion_family(peer->su_remote) == AF_INET)
index f1bea1c189ffe9d3921c8a06b4dd9cd10fcb35bd..35ceb9d99b0c03f4723d59a28be12afc57862ea3 100644 (file)
@@ -861,8 +861,10 @@ enum connect_result bgp_connect(struct peer_connection *connection)
                                 htons(peer->port), ifindex);
 }
 
-void bgp_updatesockname(struct peer *peer, struct peer_connection *connection)
+void bgp_updatesockname(struct peer_connection *connection)
 {
+       struct peer *peer = connection->peer;
+
        if (peer->su_local) {
                sockunion_free(peer->su_local);
                peer->su_local = NULL;
@@ -882,7 +884,7 @@ int bgp_getsockname(struct peer_connection *connection)
 {
        struct peer *peer = connection->peer;
 
-       bgp_updatesockname(peer, peer->connection);
+       bgp_updatesockname(connection);
 
        if (!bgp_zebra_nexthop_set(peer->su_local, peer->su_remote,
                                   &peer->nexthop, peer)) {
index ed1a72ec89005595bdec0f4376875790de4a5a45..bd8c285f34c3e2a8d16ab9b4dbf34e57b0bc2403 100644 (file)
@@ -23,7 +23,7 @@ extern void bgp_close_vrf_socket(struct bgp *bgp);
 extern void bgp_close(void);
 extern enum connect_result bgp_connect(struct peer_connection *connection);
 extern int bgp_getsockname(struct peer_connection *connection);
-extern void bgp_updatesockname(struct peer *peer, struct peer_connection *connection);
+extern void bgp_updatesockname(struct peer_connection *connection);
 
 extern int bgp_md5_set_prefix(struct bgp *bgp, struct prefix *p,
                              const char *password);