diff options
author | Martin Willi <martin@strongswan.org> | 2007-07-16 07:01:49 +0000 |
---|---|---|
committer | Martin Willi <martin@strongswan.org> | 2007-07-16 07:01:49 +0000 |
commit | cc68e173fec021a17ec04bbd4d6ca8f6adb1c15a (patch) | |
tree | 8e8ada271cef33fcf9a57a123e9b73135baa1f5c /src | |
parent | db61efdbbb2b95b9be4331810fca593e14596108 (diff) | |
download | strongswan-cc68e173fec021a17ec04bbd4d6ca8f6adb1c15a.tar.bz2 strongswan-cc68e173fec021a17ec04bbd4d6ca8f6adb1c15a.tar.xz |
fixed payload order (Nonce, KE) for IKE_SA_INIT
Diffstat (limited to 'src')
-rw-r--r-- | src/charon/sa/tasks/ike_init.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/charon/sa/tasks/ike_init.c b/src/charon/sa/tasks/ike_init.c index f78b5dd66..d14567234 100644 --- a/src/charon/sa/tasks/ike_init.c +++ b/src/charon/sa/tasks/ike_init.c @@ -149,10 +149,18 @@ static void build_payloads(private_ike_init_t *this, message_t *message) nonce_payload = nonce_payload_create(); nonce_payload->set_nonce(nonce_payload, this->my_nonce); - message->add_payload(message, (payload_t*)nonce_payload); - ke_payload = ke_payload_create_from_diffie_hellman(this->dh); - message->add_payload(message, (payload_t*)ke_payload); + + if (this->old_sa) + { /* payload order differs if we are rekeying */ + message->add_payload(message, (payload_t*)nonce_payload); + message->add_payload(message, (payload_t*)ke_payload); + } + else + { + message->add_payload(message, (payload_t*)ke_payload); + message->add_payload(message, (payload_t*)nonce_payload); + } } /** |