diff options
author | Martin Willi <martin@revosec.ch> | 2010-11-15 11:53:20 +0100 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2011-01-05 16:45:47 +0100 |
commit | 2ecbd6186ea276614f6d9e011f5447c3c7865b4d (patch) | |
tree | 279f3a100df5314b787a68e3f096c6e4d85582b4 /src/libcharon/encoding/payloads/proposal_substructure.c | |
parent | d58127af84318939a8e89c07abc737997ba594bd (diff) | |
download | strongswan-2ecbd6186ea276614f6d9e011f5447c3c7865b4d.tar.bz2 strongswan-2ecbd6186ea276614f6d9e011f5447c3c7865b4d.tar.xz |
Do not update payload length during generation, allows hooks override payload length
Diffstat (limited to 'src/libcharon/encoding/payloads/proposal_substructure.c')
-rw-r--r-- | src/libcharon/encoding/payloads/proposal_substructure.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libcharon/encoding/payloads/proposal_substructure.c b/src/libcharon/encoding/payloads/proposal_substructure.c index 985b03255..b68f017ef 100644 --- a/src/libcharon/encoding/payloads/proposal_substructure.c +++ b/src/libcharon/encoding/payloads/proposal_substructure.c @@ -234,7 +234,6 @@ static void compute_length(private_proposal_substructure_t *this) METHOD(payload_t, get_length, size_t, private_proposal_substructure_t *this) { - compute_length(this); return this->proposal_length; } @@ -366,6 +365,7 @@ METHOD(proposal_substructure_t, clone_, proposal_substructure_t*, add_transform_substructure(clone, current); } enumerator->destroy(enumerator); + compute_length(clone); return &clone->public; } @@ -409,6 +409,7 @@ proposal_substructure_t *proposal_substructure_create() .destroy = _destroy, }, .next_payload = NO_PAYLOAD, + .proposal_length = PROPOSAL_SUBSTRUCTURE_HEADER_LENGTH, .transforms = linked_list_create(), ); @@ -500,6 +501,7 @@ proposal_substructure_t *proposal_substructure_create_from_proposal( } this->proposal_number = proposal->get_number(proposal); this->protocol_id = proposal->get_protocol(proposal); + compute_length(this); return &this->public; } |