diff --git a/src/etcp_connections.c b/src/etcp_connections.c index 9cc86779..d769e6d2 100644 --- a/src/etcp_connections.c +++ b/src/etcp_connections.c @@ -1518,7 +1518,7 @@ void etcp_connections_read_callback_socket(socket_t sock, void* arg) { loadbalancer_link_ready(link); // Restart NAT check after link is up (e.g. after address change or reinit) if (link->etcp->instance->bgp) { - route_bgp_start_link_nat_check(link->etcp->instance->bgp, link); + if (link->nat_check_status < NAT_CHECK_IN_PROGRESS) route_bgp_start_link_nat_check(link->etcp->instance->bgp, link); } return; diff --git a/src/route_bgp.c b/src/route_bgp.c index bd239e07..f3c3fddd 100644 --- a/src/route_bgp.c +++ b/src/route_bgp.c @@ -1120,7 +1120,7 @@ void route_bgp_request_nat_check_all(struct ROUTE_BGP* bgp) { while (conn) { struct ETCP_LINK* link = conn->links; while (link) { - route_bgp_start_link_nat_check(bgp, link); + if (link->nat_check_status < NAT_CHECK_IN_PROGRESS) route_bgp_start_link_nat_check(bgp, link); count++; link = link->next; }