aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/encoding/message.c
diff options
context:
space:
mode:
authorClavister OpenSource <opensource@clavister.com>2011-12-07 13:30:53 +0100
committerClavister OpenSource <opensource@clavister.com>2012-03-20 17:31:13 +0100
commit5d1eeec297de5009056d71e65c336987ee0fe10f (patch)
treede3e0aa5f4e3075f4272d47c3394e5692fa0e389 /src/libcharon/encoding/message.c
parent6f6380e670a6f078d673ad276baf67044dbbc8f0 (diff)
downloadstrongswan-5d1eeec297de5009056d71e65c336987ee0fe10f.tar.bz2
strongswan-5d1eeec297de5009056d71e65c336987ee0fe10f.tar.xz
Handle incoming delete messages
Diffstat (limited to 'src/libcharon/encoding/message.c')
-rwxr-xr-xsrc/libcharon/encoding/message.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/libcharon/encoding/message.c b/src/libcharon/encoding/message.c
index 5b79ac733..91131ad22 100755
--- a/src/libcharon/encoding/message.c
+++ b/src/libcharon/encoding/message.c
@@ -591,6 +591,27 @@ static payload_order_t informational_i_order_v1[] = {
};
/**
+ * Message rule for INFORMATIONAL_V1 from responder.
+ */
+static payload_rule_t informational_r_rules_v1[] = {
+/* payload type min max encr suff */
+ {NOTIFY_V1, 0, MAX_NOTIFY_PAYLOADS, FALSE, FALSE},
+ {NOTIFY_V1, 0, MAX_NOTIFY_PAYLOADS, TRUE, FALSE},
+ {DELETE_V1, 0, MAX_DELETE_PAYLOADS, TRUE, FALSE},
+ {VENDOR_ID_V1, 0, MAX_VID_PAYLOADS, TRUE, FALSE},
+};
+
+/**
+ * payload order for INFORMATIONAL_V1 from responder.
+ */
+static payload_order_t informational_r_order_v1[] = {
+/* payload type notify type */
+ {NOTIFY_V1, 0},
+ {DELETE_V1, 0},
+ {VENDOR_ID_V1, 0},
+};
+
+/**
* Message rule for QUICK_MODE from initiator.
*/
static payload_rule_t quick_mode_i_rules[] = {
@@ -737,6 +758,10 @@ static message_rule_t message_rules[] = {
countof(informational_i_rules_v1), informational_i_rules_v1,
countof(informational_i_order_v1), informational_i_order_v1,
},
+ {INFORMATIONAL_V1, FALSE, TRUE,
+ countof(informational_r_rules_v1), informational_r_rules_v1,
+ countof(informational_r_order_v1), informational_r_order_v1,
+ },
{QUICK_MODE, TRUE, TRUE,
countof(quick_mode_i_rules), quick_mode_i_rules,
countof(quick_mode_i_order), quick_mode_i_order,