Check existing path in mobike probing only if we still have a route
This commit is contained in:
@@ -233,6 +233,7 @@ static status_t retransmit(private_task_manager_t *this, u_int32_t message_id)
|
|||||||
this->initiating.retransmitted, message_id);
|
this->initiating.retransmitted, message_id);
|
||||||
}
|
}
|
||||||
packet = this->initiating.packet->clone(this->initiating.packet);
|
packet = this->initiating.packet->clone(this->initiating.packet);
|
||||||
|
charon->sender->send(charon->sender, packet);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ /* for routeability checks, we use a more aggressive behavior */
|
{ /* for routeability checks, we use a more aggressive behavior */
|
||||||
@@ -253,12 +254,9 @@ static status_t retransmit(private_task_manager_t *this, u_int32_t message_id)
|
|||||||
DBG1(DBG_IKE, "path probing attempt %d",
|
DBG1(DBG_IKE, "path probing attempt %d",
|
||||||
this->initiating.retransmitted);
|
this->initiating.retransmitted);
|
||||||
}
|
}
|
||||||
packet = this->initiating.packet->clone(this->initiating.packet);
|
mobike->transmit(mobike, this->initiating.packet);
|
||||||
mobike->transmit(mobike, packet);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
charon->sender->send(charon->sender, packet);
|
|
||||||
|
|
||||||
this->initiating.retransmitted++;
|
this->initiating.retransmitted++;
|
||||||
job = (job_t*)retransmit_job_create(this->initiating.mid,
|
job = (job_t*)retransmit_job_create(this->initiating.mid,
|
||||||
this->ike_sa->get_id(this->ike_sa));
|
this->ike_sa->get_id(this->ike_sa));
|
||||||
|
|||||||
@@ -291,7 +291,10 @@ static void transmit(private_ike_mobike_t *this, packet_t *packet)
|
|||||||
{
|
{
|
||||||
me->set_port(me, me->ip_equals(me, me_old) ?
|
me->set_port(me, me->ip_equals(me, me_old) ?
|
||||||
me_old->get_port(me_old) : IKEV2_NATT_PORT);
|
me_old->get_port(me_old) : IKEV2_NATT_PORT);
|
||||||
packet->set_source(packet, me);
|
DBG1(DBG_IKE, "checking original path %#H - %#H", me, other_old);
|
||||||
|
copy = packet->clone(packet);
|
||||||
|
copy->set_source(copy, me);
|
||||||
|
charon->sender->send(charon->sender, copy);
|
||||||
}
|
}
|
||||||
|
|
||||||
iterator = this->ike_sa->create_additional_address_iterator(this->ike_sa);
|
iterator = this->ike_sa->create_additional_address_iterator(this->ike_sa);
|
||||||
@@ -320,9 +323,6 @@ static void transmit(private_ike_mobike_t *this, packet_t *packet)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
iterator->destroy(iterator);
|
iterator->destroy(iterator);
|
||||||
me = packet->get_source(packet);
|
|
||||||
other = packet->get_destination(packet);
|
|
||||||
DBG1(DBG_IKE, "checking path %#H - %#H", me, other);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user