diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2007-12-19 00:49:32 +0000 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2007-12-19 00:49:32 +0000 |
commit | aa1a730bfb438d50f5dd801ab9f885ca403c3571 (patch) | |
tree | ba0dd7fb896c8cbc272865c43211745093ccb0e3 /src | |
parent | e044510e5a7fa94b558f4f44fdc4aa98d9a99a6f (diff) | |
download | strongswan-aa1a730bfb438d50f5dd801ab9f885ca403c3571.tar.bz2 strongswan-aa1a730bfb438d50f5dd801ab9f885ca403c3571.tar.xz |
set nexthop default value to 0::0 in IPv6 connections
Diffstat (limited to 'src')
-rw-r--r-- | src/starter/confread.c | 2 | ||||
-rw-r--r-- | src/starter/starterwhack.c | 13 |
2 files changed, 10 insertions, 5 deletions
diff --git a/src/starter/confread.c b/src/starter/confread.c index 5dfcf93d6..0c188ee2c 100644 --- a/src/starter/confread.c +++ b/src/starter/confread.c @@ -173,7 +173,7 @@ kw_end(starter_conn_t *conn, starter_end_t *end, kw_token_t token goto err; } } - else if (streq(value, "%any")) + else if (streq(value, "%any") || streq(value, "%any4")) { anyaddr(conn->addr_family, &end->addr); } diff --git a/src/starter/starterwhack.c b/src/starter/starterwhack.c index 20dda7ca0..98fcae6ec 100644 --- a/src/starter/starterwhack.c +++ b/src/starter/starterwhack.c @@ -148,17 +148,22 @@ connection_name(starter_conn_t *conn) } static void -set_whack_end(whack_end_t *w, starter_end_t *end) +set_whack_end(whack_end_t *w, starter_end_t *end, sa_family_t family) { w->id = end->id; w->cert = end->cert; w->ca = end->ca; w->groups = end->groups; w->host_addr = end->addr; - w->host_nexthop = end->nexthop; w->host_srcip = end->srcip; w->has_client = end->has_client; + if (family == AF_INET6 && isanyaddr(&end->nexthop)) + { + anyaddr(AF_INET6, &end->nexthop); + } + w->host_nexthop = end->nexthop; + if (w->has_client) w->client = end->subnet; else @@ -246,8 +251,8 @@ starter_whack_add_conn(starter_conn_t *conn) msg.sa_keying_tries = conn->sa_keying_tries; msg.policy = conn->policy; - set_whack_end(&msg.left, &conn->left); - set_whack_end(&msg.right, &conn->right); + set_whack_end(&msg.left, &conn->left, conn->addr_family); + set_whack_end(&msg.right, &conn->right, conn->addr_family); msg.esp = conn->esp; msg.ike = conn->ike; |