From: Tobias Brunner Date: Thu, 25 Jul 2013 15:08:17 +0000 (+0200) Subject: ikev1: Always send ID payloads (traffic selectors) during Quick Mode X-Git-Tag: 5.1.0~22 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=77ccff82cfb0045aad83d0424498f87ec9f60070;p=thirdparty%2Fstrongswan.git ikev1: Always send ID payloads (traffic selectors) during Quick Mode Especially Windows 7 has problems if the peer does not send ID payloads for host-to-host connections (tunnel and transport mode). Fixes #319. --- diff --git a/src/libcharon/sa/ikev1/tasks/quick_mode.c b/src/libcharon/sa/ikev1/tasks/quick_mode.c index 92df0f0f8a..6271e5b051 100644 --- a/src/libcharon/sa/ikev1/tasks/quick_mode.c +++ b/src/libcharon/sa/ikev1/tasks/quick_mode.c @@ -510,33 +510,11 @@ static traffic_selector_t* select_ts(private_quick_mode_t *this, bool local, static void add_ts(private_quick_mode_t *this, message_t *message) { id_payload_t *id_payload; - host_t *hsi, *hsr; - if (this->initiator) - { - hsi = this->ike_sa->get_my_host(this->ike_sa); - hsr = this->ike_sa->get_other_host(this->ike_sa); - } - else - { - hsr = this->ike_sa->get_my_host(this->ike_sa); - hsi = this->ike_sa->get_other_host(this->ike_sa); - } - /* add ID payload only if negotiating non host2host tunnels */ - if (!this->tsi->is_host(this->tsi, hsi) || - !this->tsr->is_host(this->tsr, hsr) || - this->tsi->get_protocol(this->tsi) || - this->tsr->get_protocol(this->tsr) || - this->tsi->get_from_port(this->tsi) || - this->tsr->get_from_port(this->tsr) || - this->tsi->get_to_port(this->tsi) != 65535 || - this->tsr->get_to_port(this->tsr) != 65535) - { - id_payload = id_payload_create_from_ts(this->tsi); - message->add_payload(message, &id_payload->payload_interface); - id_payload = id_payload_create_from_ts(this->tsr); - message->add_payload(message, &id_payload->payload_interface); - } + id_payload = id_payload_create_from_ts(this->tsi); + message->add_payload(message, &id_payload->payload_interface); + id_payload = id_payload_create_from_ts(this->tsr); + message->add_payload(message, &id_payload->payload_interface); } /**