Simplify NAT-D payload creation if UDP encapsulation is forced
authorTobias Brunner <tobias@strongswan.org>
Fri, 13 Jul 2012 09:13:43 +0000 (11:13 +0200)
committerTobias Brunner <tobias@strongswan.org>
Fri, 13 Jul 2012 09:13:43 +0000 (11:13 +0200)
We don't need any address lookups in that case as the content of the
payload is generated randomly anyway.

src/libcharon/sa/ikev2/tasks/ike_natd.c

index 3de0ab1..44a2be1 100644 (file)
@@ -306,8 +306,8 @@ METHOD(task_t, build_i, status_t,
         * 3. Include all possbile addresses
         */
        host = message->get_source(message);
-       if (!host->is_anyaddr(host))
-       {       /* 1. */
+       if (!host->is_anyaddr(host) || ike_cfg->force_encap(ike_cfg))
+       {       /* 1. or if we force UDP encap, as it doesn't matter if it's %any */
                notify = build_natd_payload(this, NAT_DETECTION_SOURCE_IP, host);
                message->add_payload(message, (payload_t*)notify);
        }