aboutsummaryrefslogtreecommitdiffstats
path: root/src/libhydra/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'src/libhydra/kernel')
-rw-r--r--src/libhydra/kernel/kernel_interface.c6
-rw-r--r--src/libhydra/kernel/kernel_interface.h5
-rw-r--r--src/libhydra/kernel/kernel_net.h5
3 files changed, 9 insertions, 7 deletions
diff --git a/src/libhydra/kernel/kernel_interface.c b/src/libhydra/kernel/kernel_interface.c
index 8e3f6a666..7bdc0bed8 100644
--- a/src/libhydra/kernel/kernel_interface.c
+++ b/src/libhydra/kernel/kernel_interface.c
@@ -291,14 +291,14 @@ METHOD(kernel_interface_t, get_nexthop, host_t*,
return this->net->get_nexthop(this->net, dest, src);
}
-METHOD(kernel_interface_t, get_interface, char*,
- private_kernel_interface_t *this, host_t *host)
+METHOD(kernel_interface_t, get_interface, bool,
+ private_kernel_interface_t *this, host_t *host, char **name)
{
if (!this->net)
{
return NULL;
}
- return this->net->get_interface(this->net, host);
+ return this->net->get_interface(this->net, host, name);
}
METHOD(kernel_interface_t, create_address_enumerator, enumerator_t*,
diff --git a/src/libhydra/kernel/kernel_interface.h b/src/libhydra/kernel/kernel_interface.h
index 5396dad99..842b51102 100644
--- a/src/libhydra/kernel/kernel_interface.h
+++ b/src/libhydra/kernel/kernel_interface.h
@@ -308,9 +308,10 @@ struct kernel_interface_t {
* Get the interface name of a local address.
*
* @param host address to get interface name from
- * @return allocated interface name, or NULL if not found
+ * @param name allocated interface name (optional)
+ * @return TRUE if interface found and usable
*/
- char* (*get_interface) (kernel_interface_t *this, host_t *host);
+ bool (*get_interface) (kernel_interface_t *this, host_t *host, char **name);
/**
* Creates an enumerator over all local addresses.
diff --git a/src/libhydra/kernel/kernel_net.h b/src/libhydra/kernel/kernel_net.h
index 772ccacd5..4edd8da04 100644
--- a/src/libhydra/kernel/kernel_net.h
+++ b/src/libhydra/kernel/kernel_net.h
@@ -68,9 +68,10 @@ struct kernel_net_t {
* Get the interface name of a local address.
*
* @param host address to get interface name from
- * @return allocated interface name, or NULL if not found
+ * @param name allocated interface name (optional)
+ * @return TRUE if interface found and usable
*/
- char* (*get_interface) (kernel_net_t *this, host_t *host);
+ bool (*get_interface) (kernel_net_t *this, host_t *host, char **name);
/**
* Creates an enumerator over all local addresses.