ike-mobike: Force MOBIKE update after NAT mappings changed

The addresses observed by the client behind the NAT are exactly the same if
the NAT router gets restarted.

Fixes: 2b255f01af ("ike-mobike: Use ike_sa_t::update_hosts() to trigger events")
This commit is contained in:
Tobias Brunner
2021-06-21 12:03:36 +02:00
committed by Andreas Steffen
parent 036ae27645
commit abe51389c5
+4 -1
View File
@@ -499,6 +499,8 @@ METHOD(task_t, process_i, status_t,
}
else if (message->get_exchange_type(message) == INFORMATIONAL)
{
bool force = FALSE;
if (is_newer_update_queued(this))
{
return SUCCESS;
@@ -533,6 +535,7 @@ METHOD(task_t, process_i, status_t,
}
else if (this->natd->has_mapping_changed(this->natd))
{ /* force a check/update if mappings have changed during a DPD */
force = TRUE;
this->check = TRUE;
DBG1(DBG_IKE, "detected changes in NAT mappings, "
"initiating MOBIKE update");
@@ -553,7 +556,7 @@ METHOD(task_t, process_i, status_t,
{
other_new = other;
}
if (me_new || other_new)
if (me_new || other_new || force)
{
this->ike_sa->update_hosts(this->ike_sa, me_new, other_new,
UPDATE_HOSTS_FORCE_ALL);