set nexthop default value to 0::0 in IPv6 connections
authorAndreas Steffen <andreas.steffen@strongswan.org>
Wed, 19 Dec 2007 00:49:32 +0000 (00:49 -0000)
committerAndreas Steffen <andreas.steffen@strongswan.org>
Wed, 19 Dec 2007 00:49:32 +0000 (00:49 -0000)
src/starter/confread.c
src/starter/starterwhack.c

index 5dfcf93..0c188ee 100644 (file)
@@ -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);
                }
index 20dda7c..98fcae6 100644 (file)
@@ -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;