From cd6b5bf8e96b77be33468ef74ba440c7b3759b7f Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Fri, 9 Mar 2012 10:30:37 +0100 Subject: [PATCH] Clear peer addresses during HA update. --- src/libcharon/plugins/ha/ha_dispatcher.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/libcharon/plugins/ha/ha_dispatcher.c b/src/libcharon/plugins/ha/ha_dispatcher.c index ecda9fdfc2..994f91d20c 100644 --- a/src/libcharon/plugins/ha/ha_dispatcher.c +++ b/src/libcharon/plugins/ha/ha_dispatcher.c @@ -220,7 +220,7 @@ static void process_ike_update(private_ha_dispatcher_t *this, ike_sa_t *ike_sa = NULL; peer_cfg_t *peer_cfg = NULL; auth_cfg_t *auth; - bool received_vip = FALSE; + bool received_vip = FALSE, first_peer_addr = TRUE; enumerator = message->create_attribute_enumerator(message); while (enumerator->enumerate(enumerator, &attribute, &value)) @@ -261,6 +261,11 @@ static void process_ike_update(private_ha_dispatcher_t *this, received_vip = TRUE; break; case HA_PEER_ADDR: + if (first_peer_addr) + { + ike_sa->clear_peer_addresses(ike_sa); + first_peer_addr = FALSE; + } ike_sa->add_peer_address(ike_sa, value.host->clone(value.host)); break; case HA_CONFIG_NAME: -- 2.39.2