aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/encoding/parser.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2011-11-17 11:16:02 +0100
committerMartin Willi <martin@revosec.ch>2012-03-20 17:30:42 +0100
commit683d83ed3ef6c920a59f6d23d0f44c66fc6ded42 (patch)
tree8c8273f71d4db59cf0ad7628f2145232f86e5b88 /src/libcharon/encoding/parser.c
parentbcfb0f409663d9afc0c1019dd826155d70320aef (diff)
downloadstrongswan-683d83ed3ef6c920a59f6d23d0f44c66fc6ded42.tar.bz2
strongswan-683d83ed3ef6c920a59f6d23d0f44c66fc6ded42.tar.xz
Extended KE payload for IKEv1 support
Diffstat (limited to 'src/libcharon/encoding/parser.c')
-rw-r--r--src/libcharon/encoding/parser.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/libcharon/encoding/parser.c b/src/libcharon/encoding/parser.c
index c2c60f06a..86ab212b8 100644
--- a/src/libcharon/encoding/parser.c
+++ b/src/libcharon/encoding/parser.c
@@ -729,6 +729,17 @@ METHOD(parser_t, parse_payload, status_t,
}
break;
}
+ case KEY_EXCHANGE_DATA_V1:
+ {
+ if (payload_length < KE_PAYLOAD_V1_HEADER_LENGTH ||
+ !parse_chunk(this, rule_number, output + rule->offset,
+ payload_length - KE_PAYLOAD_V1_HEADER_LENGTH))
+ {
+ pld->destroy(pld);
+ return PARSE_ERROR;
+ }
+ break;
+ }
case NOTIFICATION_DATA:
{
if (payload_length < NOTIFY_PAYLOAD_HEADER_LENGTH + spi_size ||