diff options
author | Martin Willi <martin@revosec.ch> | 2010-10-28 14:40:54 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2010-10-28 15:08:14 +0200 |
commit | bb162175817aea3ac76c61c07fb1d1407ee02965 (patch) | |
tree | 0ecef3a7774d3a964b87c89b0a3144f1827430b7 /src/libcharon/encoding/payloads/proposal_substructure.c | |
parent | d454c586ab5260a83c916782caa43ebad9988575 (diff) | |
download | strongswan-bb162175817aea3ac76c61c07fb1d1407ee02965.tar.bz2 strongswan-bb162175817aea3ac76c61c07fb1d1407ee02965.tar.xz |
Store proposal number in proposal_t to reuse it in the selected proposal
According to RFC 5996 3.3.1, we MUST reuse the proposal number of
the selected proposal in the SA payload reply.
Diffstat (limited to 'src/libcharon/encoding/payloads/proposal_substructure.c')
-rw-r--r-- | src/libcharon/encoding/payloads/proposal_substructure.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libcharon/encoding/payloads/proposal_substructure.c b/src/libcharon/encoding/payloads/proposal_substructure.c index a683d72ca..985b03255 100644 --- a/src/libcharon/encoding/payloads/proposal_substructure.c +++ b/src/libcharon/encoding/payloads/proposal_substructure.c @@ -309,7 +309,7 @@ METHOD(proposal_substructure_t, get_proposal, proposal_t*, proposal_t *proposal; u_int64_t spi; - proposal = proposal_create(this->protocol_id); + proposal = proposal_create(this->protocol_id, this->proposal_number); enumerator = this->transforms->create_enumerator(this->transforms); while (enumerator->enumerate(enumerator, &transform)) @@ -498,7 +498,7 @@ proposal_substructure_t *proposal_substructure_create_from_proposal( default: break; } - this->proposal_number = 0; + this->proposal_number = proposal->get_number(proposal); this->protocol_id = proposal->get_protocol(proposal); return &this->public; |