Enforce a local address of the same family as remote address
authorMartin Willi <martin@strongswan.org>
Mon, 21 Sep 2009 13:19:39 +0000 (15:19 +0200)
committerMartin Willi <martin@strongswan.org>
Mon, 21 Sep 2009 13:30:40 +0000 (15:30 +0200)
src/charon/sa/ike_sa.c

index 5a0ab5d..02e2fec 100644 (file)
@@ -1075,9 +1075,15 @@ static void resolve_hosts(private_ike_sa_t *this)
        }
        else
        {
+               int family = 0;
+
+               /* use same address family as for other */
+               if (!this->other_host->is_anyaddr(this->other_host))
+               {
+                       family = this->other_host->get_family(this->other_host);
+               }
                host = host_create_from_dns(this->ike_cfg->get_my_addr(this->ike_cfg),
-                                                                       this->my_host->get_family(this->my_host),
-                                                                       IKEV2_UDP_PORT);
+                                                                       family, IKEV2_UDP_PORT);
 
                if (host && host->is_anyaddr(host) &&
                        !this->other_host->is_anyaddr(this->other_host))