strongswan.org
Wiki/Project Management
Downloads
Gitweb
projects
/
strongswan.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
00080d2
)
Raise an ALERT_PROPOSAL_MISMATCH_CHILD also when receiving NO_PROPOSAL_CHOSEN
author
Martin Willi
<martin@revosec.ch>
Wed, 17 Apr 2013 09:55:24 +0000
(11:55 +0200)
committer
Martin Willi
<martin@revosec.ch>
Mon, 6 May 2013 12:56:50 +0000
(14:56 +0200)
src/libcharon/sa/ikev2/tasks/child_create.c
patch
|
blob
|
history
diff --git
a/src/libcharon/sa/ikev2/tasks/child_create.c
b/src/libcharon/sa/ikev2/tasks/child_create.c
index
32c0e8c
..
5a2c05d
100644
(file)
--- a/
src/libcharon/sa/ikev2/tasks/child_create.c
+++ b/
src/libcharon/sa/ikev2/tasks/child_create.c
@@
-1147,6
+1147,25
@@
METHOD(task_t, build_r, status_t,
return SUCCESS;
}
return SUCCESS;
}
+/**
+ * Raise alerts for received notify errors
+ */
+static void raise_alerts(private_child_create_t *this, notify_type_t type)
+{
+ linked_list_t *list;
+
+ switch (type)
+ {
+ case NO_PROPOSAL_CHOSEN:
+ list = this->config->get_proposals(this->config, FALSE);
+ charon->bus->alert(charon->bus, ALERT_PROPOSAL_MISMATCH_CHILD, list);
+ list->destroy_offset(list, offsetof(proposal_t, destroy));
+ break;
+ default:
+ break;
+ }
+}
+
METHOD(task_t, process_i, status_t,
private_child_create_t *this, message_t *message)
{
METHOD(task_t, process_i, status_t,
private_child_create_t *this, message_t *message)
{
@@
-1195,6
+1214,7
@@
METHOD(task_t, process_i, status_t,
DBG1(DBG_IKE, "received %N notify, no CHILD_SA built",
notify_type_names, type);
enumerator->destroy(enumerator);
DBG1(DBG_IKE, "received %N notify, no CHILD_SA built",
notify_type_names, type);
enumerator->destroy(enumerator);
+ raise_alerts(this, type);
handle_child_sa_failure(this, message);
/* an error in CHILD_SA creation is not critical */
return SUCCESS;
handle_child_sa_failure(this, message);
/* an error in CHILD_SA creation is not critical */
return SUCCESS;