From 261b2572d1c5bc7e6a4445536dcd76a06d48b2bc Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Tue, 5 Oct 2010 17:55:32 +0200 Subject: Send list of additional addresses even if current path is still valid. --- src/libcharon/sa/ike_sa.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src') 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", -- cgit v1.2.3