diff options
author | Martin Willi <martin@revosec.ch> | 2013-04-17 11:46:12 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2013-05-06 14:56:50 +0200 |
commit | 00080d2b8b4901c85d16cb410223fce5330b2027 (patch) | |
tree | 6a7142063bd2a4666802fd2ae7685e100c0873a0 /src | |
parent | aea7ce3c6480e367df4a6d0d45bf7287e3f4fcde (diff) | |
download | strongswan-00080d2b8b4901c85d16cb410223fce5330b2027.tar.bz2 strongswan-00080d2b8b4901c85d16cb410223fce5330b2027.tar.xz |
Raise an ALERT_PROPOSAL_MISMATCH_IKE also when receiving NO_PROPOSAL_CHOSEN
Diffstat (limited to 'src')
-rw-r--r-- | src/libcharon/sa/ikev2/tasks/ike_init.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/libcharon/sa/ikev2/tasks/ike_init.c b/src/libcharon/sa/ikev2/tasks/ike_init.c index 7542937b3..278bdc3f2 100644 --- a/src/libcharon/sa/ikev2/tasks/ike_init.c +++ b/src/libcharon/sa/ikev2/tasks/ike_init.c @@ -420,6 +420,25 @@ METHOD(task_t, build_r, status_t, return SUCCESS; } +/** + * Raise alerts for received notify errors + */ +static void raise_alerts(private_ike_init_t *this, notify_type_t type) +{ + linked_list_t *list; + + switch (type) + { + case NO_PROPOSAL_CHOSEN: + list = this->config->get_proposals(this->config); + charon->bus->alert(charon->bus, ALERT_PROPOSAL_MISMATCH_IKE, list); + list->destroy_offset(list, offsetof(proposal_t, destroy)); + break; + default: + break; + } +} + METHOD(task_t, process_i, status_t, private_ike_init_t *this, message_t *message) { @@ -482,6 +501,7 @@ METHOD(task_t, process_i, status_t, DBG1(DBG_IKE, "received %N notify error", notify_type_names, type); enumerator->destroy(enumerator); + raise_alerts(this, type); return FAILED; } DBG2(DBG_IKE, "received %N notify", |