From: Tobias Brunner Date: Tue, 5 Oct 2010 15:55:32 +0000 (+0200) Subject: Send list of additional addresses even if current path is still valid. X-Git-Tag: 4.5.0~102 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=261b2572d1c5bc7e6a4445536dcd76a06d48b2bc;p=thirdparty%2Fstrongswan.git Send list of additional addresses even if current path is still valid. --- diff --git a/src/libcharon/sa/ike_sa.c b/src/libcharon/sa/ike_sa.c index c654e9ebdf..6234ea2133 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",