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:
committed by
Andreas Steffen
parent
036ae27645
commit
abe51389c5
@@ -499,6 +499,8 @@ METHOD(task_t, process_i, status_t,
|
|||||||
}
|
}
|
||||||
else if (message->get_exchange_type(message) == INFORMATIONAL)
|
else if (message->get_exchange_type(message) == INFORMATIONAL)
|
||||||
{
|
{
|
||||||
|
bool force = FALSE;
|
||||||
|
|
||||||
if (is_newer_update_queued(this))
|
if (is_newer_update_queued(this))
|
||||||
{
|
{
|
||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
@@ -533,6 +535,7 @@ METHOD(task_t, process_i, status_t,
|
|||||||
}
|
}
|
||||||
else if (this->natd->has_mapping_changed(this->natd))
|
else if (this->natd->has_mapping_changed(this->natd))
|
||||||
{ /* force a check/update if mappings have changed during a DPD */
|
{ /* force a check/update if mappings have changed during a DPD */
|
||||||
|
force = TRUE;
|
||||||
this->check = TRUE;
|
this->check = TRUE;
|
||||||
DBG1(DBG_IKE, "detected changes in NAT mappings, "
|
DBG1(DBG_IKE, "detected changes in NAT mappings, "
|
||||||
"initiating MOBIKE update");
|
"initiating MOBIKE update");
|
||||||
@@ -553,7 +556,7 @@ METHOD(task_t, process_i, status_t,
|
|||||||
{
|
{
|
||||||
other_new = other;
|
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,
|
this->ike_sa->update_hosts(this->ike_sa, me_new, other_new,
|
||||||
UPDATE_HOSTS_FORCE_ALL);
|
UPDATE_HOSTS_FORCE_ALL);
|
||||||
|
|||||||
Reference in New Issue
Block a user