Don't wait while removing external IPs used for load testing
This commit is contained in:
@@ -323,13 +323,13 @@ METHOD(kernel_interface_t, add_ip, status_t,
|
||||
}
|
||||
|
||||
METHOD(kernel_interface_t, del_ip, status_t,
|
||||
private_kernel_interface_t *this, host_t *virtual_ip, int prefix)
|
||||
private_kernel_interface_t *this, host_t *virtual_ip, int prefix, bool wait)
|
||||
{
|
||||
if (!this->net)
|
||||
{
|
||||
return NOT_SUPPORTED;
|
||||
}
|
||||
return this->net->del_ip(this->net, virtual_ip, prefix);
|
||||
return this->net->del_ip(this->net, virtual_ip, prefix, wait);
|
||||
}
|
||||
|
||||
METHOD(kernel_interface_t, add_route, status_t,
|
||||
|
||||
@@ -349,9 +349,11 @@ struct kernel_interface_t {
|
||||
*
|
||||
* @param virtual_ip virtual ip address to assign
|
||||
* @param prefix prefix length of the IP to uninstall, -1 for auto
|
||||
* @param wait TRUE to wait untily IP is gone
|
||||
* @return SUCCESS if operation completed
|
||||
*/
|
||||
status_t (*del_ip) (kernel_interface_t *this, host_t *virtual_ip, int prefix);
|
||||
status_t (*del_ip) (kernel_interface_t *this, host_t *virtual_ip,
|
||||
int prefix, bool wait);
|
||||
|
||||
/**
|
||||
* Add a route.
|
||||
|
||||
@@ -128,9 +128,11 @@ struct kernel_net_t {
|
||||
*
|
||||
* @param virtual_ip virtual ip address to assign
|
||||
* @param prefix prefix length of the IP to uninstall, -1 for auto
|
||||
* @param wait TRUE to wait until IP is gone
|
||||
* @return SUCCESS if operation completed
|
||||
*/
|
||||
status_t (*del_ip) (kernel_net_t *this, host_t *virtual_ip, int prefix);
|
||||
status_t (*del_ip) (kernel_net_t *this, host_t *virtual_ip, int prefix,
|
||||
bool wait);
|
||||
|
||||
/**
|
||||
* Add a route.
|
||||
|
||||
@@ -1758,7 +1758,8 @@ METHOD(kernel_net_t, add_ip, status_t,
|
||||
}
|
||||
|
||||
METHOD(kernel_net_t, del_ip, status_t,
|
||||
private_kernel_netlink_net_t *this, host_t *virtual_ip, int prefix)
|
||||
private_kernel_netlink_net_t *this, host_t *virtual_ip, int prefix,
|
||||
bool wait)
|
||||
{
|
||||
addr_map_entry_t *entry, lookup = {
|
||||
.ip = virtual_ip,
|
||||
@@ -1798,7 +1799,7 @@ METHOD(kernel_net_t, del_ip, status_t,
|
||||
entry->addr->installed = FALSE;
|
||||
status = manage_ipaddr(this, RTM_DELADDR, 0, entry->iface->ifindex,
|
||||
virtual_ip, prefix);
|
||||
if (status == SUCCESS)
|
||||
if (status == SUCCESS && wait)
|
||||
{ /* wait until the address is really gone */
|
||||
while (is_known_vip(this, virtual_ip))
|
||||
{
|
||||
|
||||
@@ -647,7 +647,8 @@ METHOD(kernel_net_t, add_ip, status_t,
|
||||
}
|
||||
|
||||
METHOD(kernel_net_t, del_ip, status_t,
|
||||
private_kernel_pfroute_net_t *this, host_t *virtual_ip, int prefix)
|
||||
private_kernel_pfroute_net_t *this, host_t *virtual_ip, int prefix,
|
||||
bool wait)
|
||||
{
|
||||
return FAILED;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user