forked from Mirror/frr
bgpd: bgp_getsockanme is connection oriented
Let's make it so. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
This commit is contained in:
parent
b4d640fc38
commit
0e416ff157
|
@ -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)
|
||||
|
|
|
@ -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)) {
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue