mirror of
https://github.com/strongswan/strongswan.git
synced 2025-10-06 00:00:47 -04:00
ikev2: Enable path probing for currently active MOBIKE task
This might not be the case if e.g. an address appeared but the old one is still available but not actually usable. Without this the MOBIKE task would eventually time out even though we might be able to switch to a working address.
This commit is contained in:
parent
2180ace937
commit
1b17f647a5
@ -1373,7 +1373,25 @@ METHOD(task_manager_t, queue_mobike, void,
|
||||
mobike = ike_mobike_create(this->ike_sa, TRUE);
|
||||
if (roam)
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
task_t *current;
|
||||
|
||||
mobike->roam(mobike, address);
|
||||
|
||||
/* enable path probing for a currently active MOBIKE task. This might
|
||||
* not be the case if an address appeared on a new interface while the
|
||||
* current address is not working but has not yet disappeared. */
|
||||
enumerator = array_create_enumerator(this->active_tasks);
|
||||
while (enumerator->enumerate(enumerator, ¤t))
|
||||
{
|
||||
if (current->get_type(current) == TASK_IKE_MOBIKE)
|
||||
{
|
||||
ike_mobike_t *active = (ike_mobike_t*)current;
|
||||
active->enable_probing(active);
|
||||
break;
|
||||
}
|
||||
}
|
||||
enumerator->destroy(enumerator);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user