adding new virtual ip before deleting old one to keep IP on reauthentication
This commit is contained in:
@@ -681,17 +681,17 @@ static void set_virtual_ip(private_ike_sa_t *this, bool local, host_t *ip)
|
|||||||
{
|
{
|
||||||
if (local)
|
if (local)
|
||||||
{
|
{
|
||||||
if (this->my_virtual_ip)
|
|
||||||
{
|
|
||||||
DBG1(DBG_IKE, "removing old virtual IP %H", this->my_virtual_ip);
|
|
||||||
charon->kernel_interface->del_ip(charon->kernel_interface,
|
|
||||||
this->my_virtual_ip);
|
|
||||||
this->my_virtual_ip->destroy(this->my_virtual_ip);
|
|
||||||
}
|
|
||||||
DBG1(DBG_IKE, "installing new virtual IP %H", ip);
|
DBG1(DBG_IKE, "installing new virtual IP %H", ip);
|
||||||
if (charon->kernel_interface->add_ip(charon->kernel_interface, ip,
|
if (charon->kernel_interface->add_ip(charon->kernel_interface, ip,
|
||||||
this->my_host) == SUCCESS)
|
this->my_host) == SUCCESS)
|
||||||
{
|
{
|
||||||
|
if (this->my_virtual_ip)
|
||||||
|
{
|
||||||
|
DBG1(DBG_IKE, "removing old virtual IP %H", this->my_virtual_ip);
|
||||||
|
charon->kernel_interface->del_ip(charon->kernel_interface,
|
||||||
|
this->my_virtual_ip);
|
||||||
|
}
|
||||||
|
DESTROY_IF(this->my_virtual_ip);
|
||||||
this->my_virtual_ip = ip->clone(ip);
|
this->my_virtual_ip = ip->clone(ip);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user