aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2008-06-17 08:04:12 +0000
committerMartin Willi <martin@strongswan.org>2008-06-17 08:04:12 +0000
commit285152b33d8cc7bcdc0ef6384ab177bca9ca393b (patch)
tree0dcc25b736054f60268ac59f0cfef05339544e48 /src
parent9e9d3ddc1206901993d4f6a3f027c81cb10a4135 (diff)
downloadstrongswan-285152b33d8cc7bcdc0ef6384ab177bca9ca393b.tar.bz2
strongswan-285152b33d8cc7bcdc0ef6384ab177bca9ca393b.tar.xz
do not use self-installed route for IKE if routing table is 0
Diffstat (limited to 'src')
-rw-r--r--src/charon/kernel/kernel_interface.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/charon/kernel/kernel_interface.c b/src/charon/kernel/kernel_interface.c
index 2d89de575..ad244b3c4 100644
--- a/src/charon/kernel/kernel_interface.c
+++ b/src/charon/kernel/kernel_interface.c
@@ -1669,6 +1669,13 @@ static host_t *get_route(private_kernel_interface_t *this, host_t *dest,
{
DESTROY_IF(src);
src = host_create_from_chunk(msg->rtm_family, rta_src, 0);
+ if (get_vip_refcount(this, src))
+ { /* skip source address if it is installed by us */
+ DESTROY_IF(src);
+ src = NULL;
+ current = NLMSG_NEXT(current, len);
+ continue;
+ }
}
else
{