diff options
author | Tobias Brunner <tobias@strongswan.org> | 2012-03-09 10:15:21 +0100 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2012-03-09 10:17:42 +0100 |
commit | 94bbc60256b50bd973fb7b9c3ea783ce1294fe92 (patch) | |
tree | b0d9744bf4de29944590b588dd4520c7306915b7 /src | |
parent | 2fe624cca9d0bd47c06c307508d432bf2ea989ba (diff) | |
download | strongswan-94bbc60256b50bd973fb7b9c3ea783ce1294fe92.tar.bz2 strongswan-94bbc60256b50bd973fb7b9c3ea783ce1294fe92.tar.xz |
Renamed list of additional peer addresses as it now stores all known addresses.
Diffstat (limited to 'src')
-rw-r--r-- | src/libcharon/plugins/ha/ha_dispatcher.c | 5 | ||||
-rw-r--r-- | src/libcharon/plugins/ha/ha_ike.c | 4 | ||||
-rw-r--r-- | src/libcharon/plugins/ha/ha_message.c | 4 | ||||
-rw-r--r-- | src/libcharon/plugins/ha/ha_message.h | 4 | ||||
-rw-r--r-- | src/libcharon/sa/ike_sa.c | 40 | ||||
-rw-r--r-- | src/libcharon/sa/ike_sa.h | 12 | ||||
-rw-r--r-- | src/libcharon/sa/tasks/ike_mobike.c | 16 |
7 files changed, 42 insertions, 43 deletions
diff --git a/src/libcharon/plugins/ha/ha_dispatcher.c b/src/libcharon/plugins/ha/ha_dispatcher.c index 0a89e640a..ecda9fdfc 100644 --- a/src/libcharon/plugins/ha/ha_dispatcher.c +++ b/src/libcharon/plugins/ha/ha_dispatcher.c @@ -260,9 +260,8 @@ static void process_ike_update(private_ha_dispatcher_t *this, ike_sa->set_virtual_ip(ike_sa, FALSE, value.host); received_vip = TRUE; break; - case HA_ADDITIONAL_ADDR: - ike_sa->add_additional_address(ike_sa, - value.host->clone(value.host)); + case HA_PEER_ADDR: + ike_sa->add_peer_address(ike_sa, value.host->clone(value.host)); break; case HA_CONFIG_NAME: peer_cfg = charon->backends->get_peer_cfg_by_name( diff --git a/src/libcharon/plugins/ha/ha_ike.c b/src/libcharon/plugins/ha/ha_ike.c index ce1067134..e818aec9c 100644 --- a/src/libcharon/plugins/ha/ha_ike.c +++ b/src/libcharon/plugins/ha/ha_ike.c @@ -185,10 +185,10 @@ METHOD(listener_t, ike_updown, bool, m->add_attribute(m, HA_CONDITIONS, condition); m->add_attribute(m, HA_EXTENSIONS, extension); m->add_attribute(m, HA_CONFIG_NAME, peer_cfg->get_name(peer_cfg)); - enumerator = ike_sa->create_additional_address_enumerator(ike_sa); + enumerator = ike_sa->create_peer_address_enumerator(ike_sa); while (enumerator->enumerate(enumerator, (void**)&addr)) { - m->add_attribute(m, HA_ADDITIONAL_ADDR, addr); + m->add_attribute(m, HA_PEER_ADDR, addr); } enumerator->destroy(enumerator); } diff --git a/src/libcharon/plugins/ha/ha_message.c b/src/libcharon/plugins/ha/ha_message.c index f98f78dd4..810109a5d 100644 --- a/src/libcharon/plugins/ha/ha_message.c +++ b/src/libcharon/plugins/ha/ha_message.c @@ -184,7 +184,7 @@ METHOD(ha_message_t, add_attribute, void, case HA_REMOTE_ADDR: case HA_LOCAL_VIP: case HA_REMOTE_VIP: - case HA_ADDITIONAL_ADDR: + case HA_PEER_ADDR: { host_encoding_t *enc; host_t *host; @@ -386,7 +386,7 @@ METHOD(enumerator_t, attribute_enumerate, bool, case HA_REMOTE_ADDR: case HA_LOCAL_VIP: case HA_REMOTE_VIP: - case HA_ADDITIONAL_ADDR: + case HA_PEER_ADDR: { host_encoding_t *enc; diff --git a/src/libcharon/plugins/ha/ha_message.h b/src/libcharon/plugins/ha/ha_message.h index 1f8eabd62..d0323d7a0 100644 --- a/src/libcharon/plugins/ha/ha_message.h +++ b/src/libcharon/plugins/ha/ha_message.h @@ -98,8 +98,8 @@ enum ha_message_attribute_t { HA_LOCAL_VIP, /** host_t*, remote virtual IP */ HA_REMOTE_VIP, - /** host_t*, additional MOBIKE peer address */ - HA_ADDITIONAL_ADDR, + /** host_t*, known peer addresses (used for MOBIKE) */ + HA_PEER_ADDR, /** u_int8_t, initiator of an exchange, TRUE for local */ HA_INITIATOR, /** chunk_t, initiators nonce */ diff --git a/src/libcharon/sa/ike_sa.c b/src/libcharon/sa/ike_sa.c index e9e7cde3c..a1ce526d7 100644 --- a/src/libcharon/sa/ike_sa.c +++ b/src/libcharon/sa/ike_sa.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006-2011 Tobias Brunner + * Copyright (C) 2006-2012 Tobias Brunner * Copyright (C) 2006 Daniel Roethlisberger * Copyright (C) 2005-2009 Martin Willi * Copyright (C) 2005 Jan Hutter @@ -208,9 +208,9 @@ struct private_ike_sa_t { linked_list_t *attributes; /** - * list of peers additional addresses, transmitted via MOBIKE + * list of peer's addresses, additional ones transmitted via MOBIKE */ - linked_list_t *additional_addresses; + linked_list_t *peer_addresses; /** * previously value of received DESTINATION_IP hash @@ -774,28 +774,28 @@ METHOD(ike_sa_t, get_virtual_ip, host_t*, } } -METHOD(ike_sa_t, add_additional_address, void, +METHOD(ike_sa_t, add_peer_address, void, private_ike_sa_t *this, host_t *host) { - this->additional_addresses->insert_last(this->additional_addresses, host); + this->peer_addresses->insert_last(this->peer_addresses, host); } -METHOD(ike_sa_t, create_additional_address_enumerator, enumerator_t*, +METHOD(ike_sa_t, create_peer_address_enumerator, enumerator_t*, private_ike_sa_t *this) { - return this->additional_addresses->create_enumerator( - this->additional_addresses); + return this->peer_addresses->create_enumerator(this->peer_addresses); } -METHOD(ike_sa_t, remove_additional_addresses, void, +METHOD(ike_sa_t, clear_peer_addresses, void, private_ike_sa_t *this) { - enumerator_t *enumerator = create_additional_address_enumerator(this); + enumerator_t *enumerator = create_peer_address_enumerator(this); host_t *host; + while (enumerator->enumerate(enumerator, (void**)&host)) { - this->additional_addresses->remove_at(this->additional_addresses, - enumerator); + this->peer_addresses->remove_at(this->peer_addresses, + enumerator); host->destroy(host); } enumerator->destroy(enumerator); @@ -1879,8 +1879,8 @@ static bool is_any_path_valid(private_ike_sa_t *this) this->other_host, NULL); if (!src) { - enumerator = this->additional_addresses->create_enumerator( - this->additional_addresses); + enumerator = this->peer_addresses->create_enumerator( + this->peer_addresses); while (enumerator->enumerate(enumerator, &addr)) { DBG1(DBG_IKE, "looking for a route to %H ...", addr); @@ -2136,8 +2136,8 @@ METHOD(ike_sa_t, destroy, void, } this->other_virtual_ip->destroy(this->other_virtual_ip); } - this->additional_addresses->destroy_offset(this->additional_addresses, - offsetof(host_t, destroy)); + this->peer_addresses->destroy_offset(this->peer_addresses, + offsetof(host_t, destroy)); #ifdef ME if (this->is_mediation_server) { @@ -2214,9 +2214,9 @@ ike_sa_t * ike_sa_create(ike_sa_id_t *ike_sa_id) .has_condition = _has_condition, .set_pending_updates = _set_pending_updates, .get_pending_updates = _get_pending_updates, - .create_additional_address_enumerator = _create_additional_address_enumerator, - .add_additional_address = _add_additional_address, - .remove_additional_addresses = _remove_additional_addresses, + .create_peer_address_enumerator = _create_peer_address_enumerator, + .add_peer_address = _add_peer_address, + .clear_peer_addresses = _clear_peer_addresses, .has_mapping_changed = _has_mapping_changed, .retransmit = _retransmit, .delete = _delete_, @@ -2273,7 +2273,7 @@ ike_sa_t * ike_sa_create(ike_sa_id_t *ike_sa_id) .my_auths = linked_list_create(), .other_auths = linked_list_create(), .unique_id = ++unique_id, - .additional_addresses = linked_list_create(), + .peer_addresses = linked_list_create(), .attributes = linked_list_create(), .keepalive_interval = lib->settings->get_time(lib->settings, "charon.keep_alive", KEEPALIVE_INTERVAL), diff --git a/src/libcharon/sa/ike_sa.h b/src/libcharon/sa/ike_sa.h index 85fb464a8..537565e89 100644 --- a/src/libcharon/sa/ike_sa.h +++ b/src/libcharon/sa/ike_sa.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006-2011 Tobias Brunner + * Copyright (C) 2006-2012 Tobias Brunner * Copyright (C) 2006 Daniel Roethlisberger * Copyright (C) 2005-2009 Martin Willi * Copyright (C) 2005 Jan Hutter @@ -474,19 +474,19 @@ struct ike_sa_t { * * @param host host to add to list */ - void (*add_additional_address)(ike_sa_t *this, host_t *host); + void (*add_peer_address)(ike_sa_t *this, host_t *host); /** - * Create an enumerator over all additional addresses of the peer. + * Create an enumerator over all known addresses of the peer. * * @return enumerator over addresses */ - enumerator_t* (*create_additional_address_enumerator)(ike_sa_t *this); + enumerator_t* (*create_peer_address_enumerator)(ike_sa_t *this); /** - * Remove all additional addresses of the peer. + * Remove all known addresses of the peer. */ - void (*remove_additional_addresses)(ike_sa_t *this); + void (*clear_peer_addresses)(ike_sa_t *this); /** * Check if mappings have changed on a NAT for our source address. diff --git a/src/libcharon/sa/tasks/ike_mobike.c b/src/libcharon/sa/tasks/ike_mobike.c index 0539b7d6a..da693f2b9 100644 --- a/src/libcharon/sa/tasks/ike_mobike.c +++ b/src/libcharon/sa/tasks/ike_mobike.c @@ -1,4 +1,5 @@ /* + * Copyright (C) 2010-2012 Tobias Brunner * Copyright (C) 2007 Martin Willi * Hochschule fuer Technik Rapperswil * @@ -134,17 +135,17 @@ static void process_payloads(private_ike_mobike_t *this, message_t *message) { if (first) { /* an ADDITIONAL_*_ADDRESS means replace, so flush once */ - this->ike_sa->remove_additional_addresses(this->ike_sa); + this->ike_sa->clear_peer_addresses(this->ike_sa); first = FALSE; /* add the peer's current address to the list */ host = this->ike_sa->get_other_host(this->ike_sa); - this->ike_sa->add_additional_address(this->ike_sa, - host->clone(host)); + this->ike_sa->add_peer_address(this->ike_sa, + host->clone(host)); } data = notify->get_notification_data(notify); host = host_create_from_chunk(family, data, 0); DBG2(DBG_IKE, "got additional MOBIKE peer address: %H", host); - this->ike_sa->add_additional_address(this->ike_sa, host); + this->ike_sa->add_peer_address(this->ike_sa, host); this->addresses_updated = TRUE; break; } @@ -155,11 +156,10 @@ static void process_payloads(private_ike_mobike_t *this, message_t *message) } case NO_ADDITIONAL_ADDRESSES: { - this->ike_sa->remove_additional_addresses(this->ike_sa); + this->ike_sa->clear_peer_addresses(this->ike_sa); /* add the peer's current address to the list */ host = this->ike_sa->get_other_host(this->ike_sa); - this->ike_sa->add_additional_address(this->ike_sa, - host->clone(host)); + this->ike_sa->add_peer_address(this->ike_sa, host->clone(host)); this->addresses_updated = TRUE; break; } @@ -310,7 +310,7 @@ METHOD(ike_mobike_t, transmit, void, charon->sender->send(charon->sender, copy); } - enumerator = this->ike_sa->create_additional_address_enumerator(this->ike_sa); + enumerator = this->ike_sa->create_peer_address_enumerator(this->ike_sa); while (enumerator->enumerate(enumerator, (void**)&other)) { me = hydra->kernel_interface->get_source_addr( |