fixing checkout of IKE SAs with only the initiator SPI
[strongswan.git] / src / charon / sa / ike_sa_manager.c
index ef2a91d..66a1550 100644 (file)
@@ -174,7 +174,8 @@ static bool entry_match_by_id(entry_t *entry, ike_sa_id_t *id)
        {
                return TRUE;
        }       
-       if (entry->ike_sa_id->get_responder_spi(entry->ike_sa_id) == 0 &&
+       if ((id->get_responder_spi(id) == 0 ||
+                entry->ike_sa_id->get_responder_spi(entry->ike_sa_id) == 0) &&
                id->is_initiator(id) == entry->ike_sa_id->is_initiator(entry->ike_sa_id) &&
                id->get_initiator_spi(id) == entry->ike_sa_id->get_initiator_spi(entry->ike_sa_id))
        {