fixed bug which prevented port float when nat is detected
authorMartin Willi <martin@strongswan.org>
Fri, 25 Aug 2006 07:37:22 +0000 (07:37 -0000)
committerMartin Willi <martin@strongswan.org>
Fri, 25 Aug 2006 07:37:22 +0000 (07:37 -0000)
src/charon/sa/transactions/ike_sa_init.c

index 6dda7eb..6f52f42 100644 (file)
@@ -1005,8 +1005,16 @@ static status_t conclude(private_ike_sa_init_t *this, message_t *response,
                }
                if (this->ike_sa->is_natt_enabled(this->ike_sa))
                {
+                       /* update host in IKE_SA */
+                       me = this->ike_sa->get_my_host(this->ike_sa);
+                       me = me->clone(me);
                        me->set_port(me, IKEV2_NATT_PORT);
+                       this->ike_sa->set_my_host(this->ike_sa, me);
+                       other = this->ike_sa->get_other_host(this->ike_sa);
+                       other = other->clone(other);
                        other->set_port(other, IKEV2_NATT_PORT);
+                       this->ike_sa->set_other_host(this->ike_sa, other);
+                       
                        this->logger->log(this->logger, CONTROL|LEVEL1, "switching to port %d", IKEV2_NATT_PORT);
                }
        }