aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2012-11-06 11:01:49 +0100
committerMartin Willi <martin@revosec.ch>2012-12-19 10:40:32 +0100
commitbab949bb260fe5d863cf1614e77cd6cbd5c000d8 (patch)
treee761dcf99647145dc977cf91e2c6bb42a3afd308
parent3f7f5388a544584be7e64f363abf68ad0c02396e (diff)
downloadstrongswan-bab949bb260fe5d863cf1614e77cd6cbd5c000d8.tar.bz2
strongswan-bab949bb260fe5d863cf1614e77cd6cbd5c000d8.tar.xz
Raise an alert if IKE proposals mismatch
-rw-r--r--src/libcharon/bus/bus.h2
-rw-r--r--src/libcharon/sa/ikev2/tasks/ike_init.c5
2 files changed, 7 insertions, 0 deletions
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;