Create host-to-host traffic selectors if quick mode identities missing
This commit is contained in:
@@ -303,7 +303,7 @@ METHOD(task_t, process_r, status_t,
|
|||||||
payload_t *payload;
|
payload_t *payload;
|
||||||
linked_list_t *tsi, *tsr, *list;
|
linked_list_t *tsi, *tsr, *list;
|
||||||
peer_cfg_t *peer_cfg;
|
peer_cfg_t *peer_cfg;
|
||||||
host_t *me, *other;
|
host_t *me, *other, *host;
|
||||||
enumerator_t *enumerator;
|
enumerator_t *enumerator;
|
||||||
bool first = TRUE;
|
bool first = TRUE;
|
||||||
|
|
||||||
@@ -328,7 +328,18 @@ METHOD(task_t, process_r, status_t,
|
|||||||
}
|
}
|
||||||
enumerator->destroy(enumerator);
|
enumerator->destroy(enumerator);
|
||||||
|
|
||||||
/* TODO-IKEv1: create host2host TS if ID payloads missing */
|
if (!this->tsi)
|
||||||
|
{
|
||||||
|
host = this->ike_sa->get_other_host(this->ike_sa);
|
||||||
|
this->tsi = traffic_selector_create_from_subnet(host->clone(host),
|
||||||
|
host->get_family(host) == AF_INET ? 32 : 128, 0, 0);
|
||||||
|
}
|
||||||
|
if (!this->tsr)
|
||||||
|
{
|
||||||
|
host = this->ike_sa->get_my_host(this->ike_sa);
|
||||||
|
this->tsr = traffic_selector_create_from_subnet(host->clone(host),
|
||||||
|
host->get_family(host) == AF_INET ? 32 : 128, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
me = this->ike_sa->get_virtual_ip(this->ike_sa, TRUE);
|
me = this->ike_sa->get_virtual_ip(this->ike_sa, TRUE);
|
||||||
if (!me)
|
if (!me)
|
||||||
@@ -471,6 +482,7 @@ METHOD(task_t, process_i, status_t,
|
|||||||
traffic_selector_t *tsi = NULL, *tsr = NULL;
|
traffic_selector_t *tsi = NULL, *tsr = NULL;
|
||||||
linked_list_t *list;
|
linked_list_t *list;
|
||||||
enumerator_t *enumerator;
|
enumerator_t *enumerator;
|
||||||
|
host_t *host;
|
||||||
bool first = TRUE;
|
bool first = TRUE;
|
||||||
|
|
||||||
enumerator = message->create_payload_enumerator(message);
|
enumerator = message->create_payload_enumerator(message);
|
||||||
@@ -494,7 +506,18 @@ METHOD(task_t, process_i, status_t,
|
|||||||
}
|
}
|
||||||
enumerator->destroy(enumerator);
|
enumerator->destroy(enumerator);
|
||||||
|
|
||||||
/* TODO-IKEv1: create host2host TS if ID payloads missing */
|
if (!tsr)
|
||||||
|
{
|
||||||
|
host = this->ike_sa->get_other_host(this->ike_sa);
|
||||||
|
tsr = traffic_selector_create_from_subnet(host->clone(host),
|
||||||
|
host->get_family(host) == AF_INET ? 32 : 128, 0, 0);
|
||||||
|
}
|
||||||
|
if (!tsi)
|
||||||
|
{
|
||||||
|
host = this->ike_sa->get_my_host(this->ike_sa);
|
||||||
|
tsi = traffic_selector_create_from_subnet(host->clone(host),
|
||||||
|
host->get_family(host) == AF_INET ? 32 : 128, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
if (!tsr->is_contained_in(tsr, this->tsr) ||
|
if (!tsr->is_contained_in(tsr, this->tsr) ||
|
||||||
!tsi->is_contained_in(tsi, this->tsi))
|
!tsi->is_contained_in(tsi, this->tsi))
|
||||||
|
|||||||
Reference in New Issue
Block a user