diff options
author | Tobias Brunner <tobias@strongswan.org> | 2011-11-16 16:19:13 +0100 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2012-03-20 17:30:41 +0100 |
commit | 3238faf8e6a91f554a76a376bacbc333c3530925 (patch) | |
tree | 245bb8ac3fe5cb6ca9f3fe418fd1fc3bae3ddd5a | |
parent | 354ac9579f92d69a54b70b2010c7a5d35893eebc (diff) | |
download | strongswan-3238faf8e6a91f554a76a376bacbc333c3530925.tar.bz2 strongswan-3238faf8e6a91f554a76a376bacbc333c3530925.tar.xz |
Fix init message arrival check.
-rw-r--r-- | src/libcharon/sa/ike_sa_manager.c | 35 |
1 files changed, 14 insertions, 21 deletions
diff --git a/src/libcharon/sa/ike_sa_manager.c b/src/libcharon/sa/ike_sa_manager.c index 6d6fb4b80..6b2d17386 100644 --- a/src/libcharon/sa/ike_sa_manager.c +++ b/src/libcharon/sa/ike_sa_manager.c @@ -1031,34 +1031,27 @@ METHOD(ike_sa_manager_t, checkout_by_message, ike_sa_t*, if (ike_sa == NULL) { - if (is_init) - { - /* no IKE_SA found, create a new one */ - id->set_responder_spi(id, get_spi(this)); - entry = entry_create(); - entry->ike_sa = ike_sa_create(id); - entry->ike_sa_id = id->clone(id); + /* no IKE_SA found, create a new one */ + id->set_responder_spi(id, get_spi(this)); + entry = entry_create(); + entry->ike_sa = ike_sa_create(id); + entry->ike_sa_id = id->clone(id); - segment = put_entry(this, entry); - entry->checked_out = TRUE; - unlock_single_segment(this, segment); + segment = put_entry(this, entry); + entry->checked_out = TRUE; + unlock_single_segment(this, segment); - entry->message_id = message->get_message_id(message); - entry->init_hash = hash; - ike_sa = entry->ike_sa; + entry->message_id = message->get_message_id(message); + entry->init_hash = hash; + ike_sa = entry->ike_sa; - DBG2(DBG_MGR, "created IKE_SA %s[%u]", - ike_sa->get_name(ike_sa), ike_sa->get_unique_id(ike_sa)); - } - else - { - chunk_free(&hash); - DBG1(DBG_MGR, "ignoring message, no such IKE_SA"); - } + DBG2(DBG_MGR, "created IKE_SA %s[%u]", + ike_sa->get_name(ike_sa), ike_sa->get_unique_id(ike_sa)); } else { chunk_free(&hash); + DBG1(DBG_MGR, "ignoring message, no such IKE_SA"); } id->destroy(id); charon->bus->set_sa(charon->bus, ike_sa); |