diff options
Diffstat (limited to 'src/charon/sa/tasks/ike_natd.c')
-rw-r--r-- | src/charon/sa/tasks/ike_natd.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/charon/sa/tasks/ike_natd.c b/src/charon/sa/tasks/ike_natd.c index 9121fe2ea..9ea20ba36 100644 --- a/src/charon/sa/tasks/ike_natd.c +++ b/src/charon/sa/tasks/ike_natd.c @@ -313,6 +313,7 @@ static status_t build_i(private_ike_natd_t *this, message_t *message) { notify_payload_t *notify; enumerator_t *enumerator; + ike_cfg_t *ike_cfg; host_t *host; if (this->hasher == NULL) @@ -321,6 +322,8 @@ static status_t build_i(private_ike_natd_t *this, message_t *message) return NEED_MORE; } + ike_cfg = this->ike_sa->get_ike_cfg(this->ike_sa); + /* destination is always set */ host = message->get_destination(message); notify = build_natd_payload(this, NAT_DETECTION_DESTINATION_IP, host); @@ -343,7 +346,7 @@ static status_t build_i(private_ike_natd_t *this, message_t *message) this->ike_sa->get_other_host(this->ike_sa), NULL); if (host) { /* 2. */ - host->set_port(host, IKEV2_UDP_PORT); + host->set_port(host, ike_cfg->get_my_port(ike_cfg)); notify = build_natd_payload(this, NAT_DETECTION_SOURCE_IP, host); message->add_payload(message, (payload_t*)notify); host->destroy(host); @@ -356,7 +359,7 @@ static status_t build_i(private_ike_natd_t *this, message_t *message) { /* apply port 500 to host, but work on a copy */ host = host->clone(host); - host->set_port(host, IKEV2_UDP_PORT); + host->set_port(host, ike_cfg->get_my_port(ike_cfg)); notify = build_natd_payload(this, NAT_DETECTION_SOURCE_IP, host); host->destroy(host); message->add_payload(message, (payload_t*)notify); |