Install virtual IPs via interface name, and use an interface lookup where required

This commit is contained in:
Martin Willi
2012-11-29 10:22:51 +01:00
parent 0a54d3e1a1
commit b185cdd16d
9 changed files with 49 additions and 55 deletions
+2 -2
View File
@@ -313,13 +313,13 @@ METHOD(kernel_interface_t, create_address_enumerator, enumerator_t*,
METHOD(kernel_interface_t, add_ip, status_t,
private_kernel_interface_t *this, host_t *virtual_ip, int prefix,
host_t *iface_ip)
char *iface)
{
if (!this->net)
{
return NOT_SUPPORTED;
}
return this->net->add_ip(this->net, virtual_ip, prefix, iface_ip);
return this->net->add_ip(this->net, virtual_ip, prefix, iface);
}
METHOD(kernel_interface_t, del_ip, status_t,
+2 -3
View File
@@ -333,15 +333,14 @@ struct kernel_interface_t {
* Virtual IPs are attached to an interface. If an IP is added multiple
* times, the IP is refcounted and not removed until del_ip() was called
* as many times as add_ip().
* The virtual IP is attached to the interface where the iface_ip is found.
*
* @param virtual_ip virtual ip address to assign
* @param prefix prefix length to install IP with, -1 for auto
* @param iface_ip IP of an interface to attach virtual IP
* @param iface interface to install virtual IP on
* @return SUCCESS if operation completed
*/
status_t (*add_ip) (kernel_interface_t *this, host_t *virtual_ip, int prefix,
host_t *iface_ip);
char *iface);
/**
* Remove a virtual IP from an interface.
+2 -3
View File
@@ -112,15 +112,14 @@ struct kernel_net_t {
* Virtual IPs are attached to an interface. If an IP is added multiple
* times, the IP is refcounted and not removed until del_ip() was called
* as many times as add_ip().
* The virtual IP is attached to the interface where the iface_ip is found.
*
* @param virtual_ip virtual ip address to assign
* @param prefix prefix length to install with IP address, -1 for auto
* @param iface_ip IP of an interface to attach virtual IP
* @param iface interface to install virtual IP on
* @return SUCCESS if operation completed
*/
status_t (*add_ip) (kernel_net_t *this, host_t *virtual_ip, int prefix,
host_t *iface_ip);
char *iface);
/**
* Remove a virtual IP from an interface.