diff options
author | Tobias Brunner <tobias@strongswan.org> | 2010-10-07 10:08:06 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2010-10-12 11:11:06 +0200 |
commit | 1dbf0ed9828471265f2b024c0b9ba3accaa9a9eb (patch) | |
tree | 9599d1804c01ae5f74709d43bdafe113636c8ad4 /src | |
parent | 577440889859d055aebb6cb72c7cd1d952f6c60c (diff) | |
download | strongswan-1dbf0ed9828471265f2b024c0b9ba3accaa9a9eb.tar.bz2 strongswan-1dbf0ed9828471265f2b024c0b9ba3accaa9a9eb.tar.xz |
Do not add additional addresses to MOBIKE path probing messages.
Diffstat (limited to 'src')
-rw-r--r-- | src/libcharon/sa/tasks/ike_mobike.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/libcharon/sa/tasks/ike_mobike.c b/src/libcharon/sa/tasks/ike_mobike.c index 1773f6b54..5b12eaaac 100644 --- a/src/libcharon/sa/tasks/ike_mobike.c +++ b/src/libcharon/sa/tasks/ike_mobike.c @@ -382,7 +382,7 @@ METHOD(task_t, build_i, status_t, build_cookie(this, message); update_children(this); } - if (this->address) + if (this->address && !this->check) { build_address_list(this, message); } @@ -543,20 +543,22 @@ METHOD(task_t, process_i, status_t, } if (this->update) { + /* use the same task to ... */ if (!this->ike_sa->has_condition(this->ike_sa, COND_ORIGINAL_INITIATOR)) - { + { /*... send an updated list of addresses as responder */ update_children(this); - return SUCCESS; + this->update = FALSE; } - /* original initiator starts the update with the same task */ - this->check = FALSE; - this->address = FALSE; - if (this->natd) - { - this->natd->task.destroy(&this->natd->task); + else + { /* ... send the update as original initiator */ + if (this->natd) + { + this->natd->task.destroy(&this->natd->task); + } + this->natd = ike_natd_create(this->ike_sa, this->initiator); } - this->natd = ike_natd_create(this->ike_sa, this->initiator); + this->check = FALSE; this->ike_sa->set_pending_updates(this->ike_sa, 1); return NEED_MORE; } |