diff options
| author | Tobias Brunner <tobias@strongswan.org> | 2016-05-30 15:39:38 +0200 |
|---|---|---|
| committer | Tobias Brunner <tobias@strongswan.org> | 2016-06-17 18:48:05 +0200 |
| commit | 40d9a4c892bb18440bc463ba7bc63e0fa31195c3 (patch) | |
| tree | 05b90ab59245f96305b7ad23decbc9863b3bedde /src/libcharon/tests | |
| parent | 498a46d22f8c3ae51a01bdf6cba8c7857e608acf (diff) | |
| download | strongswan-40d9a4c892bb18440bc463ba7bc63e0fa31195c3.tar.bz2 strongswan-40d9a4c892bb18440bc463ba7bc63e0fa31195c3.tar.xz | |
unit-tests: Only deliver messages to the SA they are addressed to
Diffstat (limited to 'src/libcharon/tests')
| -rw-r--r-- | src/libcharon/tests/utils/exchange_test_helper.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/libcharon/tests/utils/exchange_test_helper.c b/src/libcharon/tests/utils/exchange_test_helper.c index ab562271f..f32906d5d 100644 --- a/src/libcharon/tests/utils/exchange_test_helper.c +++ b/src/libcharon/tests/utils/exchange_test_helper.c @@ -182,16 +182,24 @@ METHOD(backend_t, create_peer_cfg_enumerator, enumerator_t*, METHOD(exchange_test_helper_t, process_message, status_t, private_exchange_test_helper_t *this, ike_sa_t *ike_sa, message_t *message) { - status_t status; + status_t status = FAILED; + ike_sa_id_t *id; if (!message) { message = this->public.sender->dequeue(this->public.sender); } - charon->bus->set_sa(charon->bus, ike_sa); - status = ike_sa->process_message(ike_sa, message); - charon->bus->set_sa(charon->bus, NULL); + id = message->get_ike_sa_id(message); + id = id->clone(id); + id->switch_initiator(id); + if (!id->get_responder_spi(id) || id->equals(id, ike_sa->get_id(ike_sa))) + { + charon->bus->set_sa(charon->bus, ike_sa); + status = ike_sa->process_message(ike_sa, message); + charon->bus->set_sa(charon->bus, NULL); + } message->destroy(message); + id->destroy(id); return status; } |
