From: Donald Sharp Date: Sat, 26 Aug 2023 21:33:27 +0000 (-0400) Subject: bgpd: Expose bgp_peer_connection_free and make it a double pointer X-Git-Tag: base_9.1~86^2~7 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=8e90c4c953bce7f9b2549de1edf1423d8b49ff58;p=mirror%2Ffrr.git bgpd: Expose bgp_peer_connection_free and make it a double pointer The bgp_peer_connection_free function should be exposed outside of bgpd.c so that it can be used. Signed-off-by: Donald Sharp --- diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index 278ab40e16..8dae69817a 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -1149,13 +1149,15 @@ void bgp_peer_connection_buffers_free(struct peer_connection *connection) } } -static void bgp_peer_connection_free(struct peer_connection *connection) +void bgp_peer_connection_free(struct peer_connection **connection) { - bgp_peer_connection_buffers_free(connection); - pthread_mutex_destroy(&connection->io_mtx); + bgp_peer_connection_buffers_free(*connection); + pthread_mutex_destroy(&(*connection)->io_mtx); - memset(connection, 0, sizeof(struct peer_connection)); - XFREE(MTYPE_BGP_PEER_CONNECTION, connection); + memset(*connection, 0, sizeof(struct peer_connection)); + XFREE(MTYPE_BGP_PEER_CONNECTION, *connection); + + connection = NULL; } struct peer_connection *bgp_peer_connection_new(struct peer *peer) @@ -1268,7 +1270,7 @@ static void peer_free(struct peer *peer) if (peer->as_pretty) XFREE(MTYPE_BGP, peer->as_pretty); - bgp_peer_connection_free(peer->connection); + bgp_peer_connection_free(&peer->connection); bgp_unlock(peer->bgp); diff --git a/bgpd/bgpd.h b/bgpd/bgpd.h index fb2bd6e503..1fc7e02a67 100644 --- a/bgpd/bgpd.h +++ b/bgpd/bgpd.h @@ -1162,6 +1162,7 @@ struct peer_connection { #define PEER_THREAD_READS_ON (1U << 1) }; extern struct peer_connection *bgp_peer_connection_new(struct peer *peer); +extern void bgp_peer_connection_free(struct peer_connection **connection); extern void bgp_peer_connection_buffers_free(struct peer_connection *connection); /* BGP neighbor structure. */