From bab949bb260fe5d863cf1614e77cd6cbd5c000d8 Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Tue, 6 Nov 2012 11:01:49 +0100 Subject: Raise an alert if IKE proposals mismatch --- src/libcharon/bus/bus.h | 2 ++ src/libcharon/sa/ikev2/tasks/ike_init.c | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/src/libcharon/bus/bus.h b/src/libcharon/bus/bus.h index 4f2412707..433658ab7 100644 --- a/src/libcharon/bus/bus.h +++ b/src/libcharon/bus/bus.h @@ -107,6 +107,8 @@ enum alert_t { ALERT_RETRANSMIT_SEND_TIMEOUT, /** received a retransmit for a message, argument is message_t */ ALERT_RETRANSMIT_RECEIVE, + /** IKE proposals do not match, argument is linked_list_t of proposal_t */ + ALERT_PROPOSAL_MISMATCH_IKE, }; /** diff --git a/src/libcharon/sa/ikev2/tasks/ike_init.c b/src/libcharon/sa/ikev2/tasks/ike_init.c index f2a06735e..e2960273c 100644 --- a/src/libcharon/sa/ikev2/tasks/ike_init.c +++ b/src/libcharon/sa/ikev2/tasks/ike_init.c @@ -187,6 +187,11 @@ static void process_payloads(private_ike_init_t *this, message_t *message) EXT_STRONGSWAN); this->proposal = this->config->select_proposal(this->config, proposal_list, private); + if (!this->proposal) + { + charon->bus->alert(charon->bus, ALERT_PROPOSAL_MISMATCH_IKE, + proposal_list); + } proposal_list->destroy_offset(proposal_list, offsetof(proposal_t, destroy)); break; -- cgit v1.2.3