aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/encoding/payloads/proposal_substructure.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2010-10-28 14:40:54 +0200
committerMartin Willi <martin@revosec.ch>2010-10-28 15:08:14 +0200
commitbb162175817aea3ac76c61c07fb1d1407ee02965 (patch)
tree0ecef3a7774d3a964b87c89b0a3144f1827430b7 /src/libcharon/encoding/payloads/proposal_substructure.c
parentd454c586ab5260a83c916782caa43ebad9988575 (diff)
downloadstrongswan-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.c4
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;