aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/encoding/parser.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2011-11-16 09:29:38 +0100
committerMartin Willi <martin@revosec.ch>2012-03-20 17:30:40 +0100
commitb0b9d185931e7f88f0f7c89e9ef4e6034ac38dd3 (patch)
tree4aa8013d6126f2205d6d98df6ac102a511bacf8a /src/libcharon/encoding/parser.c
parent8f3aea2f774c5647c6cb7e4da664c6323f5cc669 (diff)
downloadstrongswan-b0b9d185931e7f88f0f7c89e9ef4e6034ac38dd3.tar.bz2
strongswan-b0b9d185931e7f88f0f7c89e9ef4e6034ac38dd3.tar.xz
Extend sa_payload for IKEv1 support
Diffstat (limited to 'src/libcharon/encoding/parser.c')
-rw-r--r--src/libcharon/encoding/parser.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libcharon/encoding/parser.c b/src/libcharon/encoding/parser.c
index 6309a5c3f..09b52168f 100644
--- a/src/libcharon/encoding/parser.c
+++ b/src/libcharon/encoding/parser.c
@@ -496,6 +496,18 @@ METHOD(parser_t, parse_payload, status_t,
}
break;
}
+ case PROPOSALS_V1:
+ {
+ if (payload_length < SA_PAYLOAD_V1_HEADER_LENGTH ||
+ !parse_list(this, rule_number, output + rule->offset,
+ PROPOSAL_SUBSTRUCTURE_V1,
+ payload_length - SA_PAYLOAD_V1_HEADER_LENGTH))
+ {
+ pld->destroy(pld);
+ return PARSE_ERROR;
+ }
+ break;
+ }
case TRANSFORMS:
{
if (payload_length <