diff options
author | Tobias Brunner <tobias@strongswan.org> | 2012-03-09 10:30:37 +0100 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2012-03-09 10:30:37 +0100 |
commit | cd6b5bf8e96b77be33468ef74ba440c7b3759b7f (patch) | |
tree | 041d9217ccfd3fb46029ae7bc2bea2587d40b4fa /src | |
parent | 72b2811204352d00cd190e6ece0f8c5f8f489fab (diff) | |
download | strongswan-cd6b5bf8e96b77be33468ef74ba440c7b3759b7f.tar.bz2 strongswan-cd6b5bf8e96b77be33468ef74ba440c7b3759b7f.tar.xz |
Clear peer addresses during HA update.
Diffstat (limited to 'src')
-rw-r--r-- | src/libcharon/plugins/ha/ha_dispatcher.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libcharon/plugins/ha/ha_dispatcher.c b/src/libcharon/plugins/ha/ha_dispatcher.c index ecda9fdfc..994f91d20 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: |