diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/charon/sa/ike_sa_manager.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/charon/sa/ike_sa_manager.c b/src/charon/sa/ike_sa_manager.c index ef2a91d88..66a15501f 100644 --- a/src/charon/sa/ike_sa_manager.c +++ b/src/charon/sa/ike_sa_manager.c @@ -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)) { |