diff options
author | Tobias Brunner <tobias@strongswan.org> | 2012-09-14 16:27:33 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2012-09-21 18:16:26 +0200 |
commit | 9ba36c0f7f68af814c9805ec8ac11d2f3ae2f5d7 (patch) | |
tree | 2ff3c2a3433ef923620072150a7161c6140a1017 /src/libhydra/kernel | |
parent | aed33805ce92a1d075971734357a111637488a2a (diff) | |
download | strongswan-9ba36c0f7f68af814c9805ec8ac11d2f3ae2f5d7.tar.bz2 strongswan-9ba36c0f7f68af814c9805ec8ac11d2f3ae2f5d7.tar.xz |
Make it easy to check if an address is locally usable via changed get_interface() method
Diffstat (limited to 'src/libhydra/kernel')
-rw-r--r-- | src/libhydra/kernel/kernel_interface.c | 6 | ||||
-rw-r--r-- | src/libhydra/kernel/kernel_interface.h | 5 | ||||
-rw-r--r-- | src/libhydra/kernel/kernel_net.h | 5 |
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. |