aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/encoding/parser.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2011-11-16 12:40:09 +0000
committerMartin Willi <martin@revosec.ch>2012-03-20 17:30:40 +0100
commit3f6d1b13a7d53bf465c65687e18425d14a143af8 (patch)
tree484910eca90a2130e7696897394d9d328372e970 /src/libcharon/encoding/parser.c
parentb0b9d185931e7f88f0f7c89e9ef4e6034ac38dd3 (diff)
downloadstrongswan-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.c25
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 ||