diff options
author | Martin Willi <martin@revosec.ch> | 2011-11-16 09:29:38 +0100 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2012-03-20 17:30:40 +0100 |
commit | b0b9d185931e7f88f0f7c89e9ef4e6034ac38dd3 (patch) | |
tree | 4aa8013d6126f2205d6d98df6ac102a511bacf8a /src/libcharon/encoding/parser.c | |
parent | 8f3aea2f774c5647c6cb7e4da664c6323f5cc669 (diff) | |
download | strongswan-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.c | 12 |
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 < |