Improved check for first IKE_AUTH message in ike_mobike task.

If the original responder initiated a MOBIKE exchange, the previous
check was not always correct.
This commit is contained in:
Tobias Brunner
2010-10-12 11:11:05 +02:00
parent c817e7bb90
commit 31e7dc4dfd
+6 -3
View File
@@ -342,7 +342,8 @@ METHOD(ike_mobike_t, transmit, void,
METHOD(task_t, build_i, status_t, METHOD(task_t, build_i, status_t,
private_ike_mobike_t *this, message_t *message) private_ike_mobike_t *this, message_t *message)
{ {
if (message->get_message_id(message) == 1) if (message->get_exchange_type(message) == IKE_AUTH &&
message->get_message_id(message) == 1)
{ /* only in first IKE_AUTH */ { /* only in first IKE_AUTH */
message->add_notify(message, FALSE, MOBIKE_SUPPORTED, chunk_empty); message->add_notify(message, FALSE, MOBIKE_SUPPORTED, chunk_empty);
build_address_list(this, message); build_address_list(this, message);
@@ -369,7 +370,8 @@ METHOD(task_t, build_i, status_t,
} }
if (this->update) if (this->update)
{ {
message->add_notify(message, FALSE, UPDATE_SA_ADDRESSES, chunk_empty); message->add_notify(message, FALSE, UPDATE_SA_ADDRESSES,
chunk_empty);
build_cookie(this, message); build_cookie(this, message);
update_children(this); update_children(this);
} }
@@ -388,7 +390,8 @@ METHOD(task_t, build_i, status_t,
METHOD(task_t, process_r, status_t, METHOD(task_t, process_r, status_t,
private_ike_mobike_t *this, message_t *message) private_ike_mobike_t *this, message_t *message)
{ {
if (message->get_message_id(message) == 1) if (message->get_exchange_type(message) == IKE_AUTH &&
message->get_message_id(message) == 1)
{ /* only first IKE_AUTH */ { /* only first IKE_AUTH */
process_payloads(this, message); process_payloads(this, message);
} }