diff options
author | Martin Willi <martin@revosec.ch> | 2011-11-16 12:40:09 +0000 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2012-03-20 17:30:40 +0100 |
commit | 3f6d1b13a7d53bf465c65687e18425d14a143af8 (patch) | |
tree | 484910eca90a2130e7696897394d9d328372e970 /src/libcharon/encoding/parser.c | |
parent | b0b9d185931e7f88f0f7c89e9ef4e6034ac38dd3 (diff) | |
download | strongswan-3f6d1b13a7d53bf465c65687e18425d14a143af8.tar.bz2 strongswan-3f6d1b13a7d53bf465c65687e18425d14a143af8.tar.xz |
Added additional IKEv1 payload and encoding identifiers
Diffstat (limited to 'src/libcharon/encoding/parser.c')
-rw-r--r-- | src/libcharon/encoding/parser.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/libcharon/encoding/parser.c b/src/libcharon/encoding/parser.c index 09b52168f..c2c60f06a 100644 --- a/src/libcharon/encoding/parser.c +++ b/src/libcharon/encoding/parser.c @@ -521,6 +521,19 @@ METHOD(parser_t, parse_payload, status_t, } break; } + case TRANSFORMS_V1: + { + if (payload_length < + spi_size + PROPOSAL_SUBSTRUCTURE_HEADER_LENGTH || + !parse_list(this, rule_number, output + rule->offset, + TRANSFORM_SUBSTRUCTURE_V1, payload_length - spi_size - + PROPOSAL_SUBSTRUCTURE_HEADER_LENGTH)) + { + pld->destroy(pld); + return PARSE_ERROR; + } + break; + } case TRANSFORM_ATTRIBUTES: { if (payload_length < TRANSFORM_SUBSTRUCTURE_HEADER_LENGTH || @@ -533,6 +546,18 @@ METHOD(parser_t, parse_payload, status_t, } break; } + case TRANSFORM_ATTRIBUTES_V1: + { + if (payload_length < TRANSFORM_SUBSTRUCTURE_HEADER_LENGTH || + !parse_list(this, rule_number, output + rule->offset, + TRANSFORM_ATTRIBUTE_V1, + payload_length - TRANSFORM_SUBSTRUCTURE_HEADER_LENGTH)) + { + pld->destroy(pld); + return PARSE_ERROR; + } + break; + } case CONFIGURATION_ATTRIBUTES: { if (payload_length < CP_PAYLOAD_HEADER_LENGTH || |