diff options
author | Tobias Brunner <tobias@strongswan.org> | 2010-10-05 17:55:32 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2010-10-12 11:11:05 +0200 |
commit | 261b2572d1c5bc7e6a4445536dcd76a06d48b2bc (patch) | |
tree | 77706d40372c94e40e3196e737104a4a998100e3 /src | |
parent | bab56a4abbe2aeec2eb7500e08025f8b0a98a9ef (diff) | |
download | strongswan-261b2572d1c5bc7e6a4445536dcd76a06d48b2bc.tar.bz2 strongswan-261b2572d1c5bc7e6a4445536dcd76a06d48b2bc.tar.xz |
Send list of additional addresses even if current path is still valid.
Diffstat (limited to 'src')
-rw-r--r-- | src/libcharon/sa/ike_sa.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/libcharon/sa/ike_sa.c b/src/libcharon/sa/ike_sa.c index c654e9ebd..6234ea213 100644 --- a/src/libcharon/sa/ike_sa.c +++ b/src/libcharon/sa/ike_sa.c @@ -1809,8 +1809,19 @@ METHOD(ike_sa_t, roam, status_t, DBG2(DBG_IKE, "keeping connection path %H - %H", this->my_host, this->other_host); set_condition(this, COND_STALE, FALSE); + + if (supports_extension(this, EXT_MOBIKE) && address) + { /* if any addresses changed, send an updated list */ + DBG1(DBG_IKE, "sending address list update using MOBIKE"); + mobike = ike_mobike_create(&this->public, TRUE); + mobike->addresses(mobike); + this->task_manager->queue_task(this->task_manager, + (task_t*)mobike); + return this->task_manager->initiate(this->task_manager); + } return SUCCESS; } + if (!is_any_path_valid(this)) { DBG1(DBG_IKE, "no route found to reach %H, MOBIKE update deferred", |