Accept and process IKEv1 messages in receiver
This commit is contained in:
@@ -162,6 +162,7 @@ static void send_notify(message_t *request, notify_type_t type, chunk_t data)
|
|||||||
response->destroy(response);
|
response->destroy(response);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* TODO-IKEv1: send IKEv1 specific notifies */
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -371,16 +372,26 @@ static job_requeue_t receive_packets(private_receiver_t *this)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* check IKE major version */
|
/* check IKE major version */
|
||||||
if (message->get_major_version(message) != IKEV2_MAJOR_VERSION)
|
switch (message->get_major_version(message))
|
||||||
{
|
{
|
||||||
DBG1(DBG_NET, "received unsupported IKE version %d.%d from %H, "
|
case IKEV2_MAJOR_VERSION:
|
||||||
"sending INVALID_MAJOR_VERSION", message->get_major_version(message),
|
break;
|
||||||
message->get_minor_version(message), packet->get_source(packet));
|
#ifdef USE_IKEV1
|
||||||
send_notify(message, INVALID_MAJOR_VERSION, chunk_empty);
|
case IKEV1_MAJOR_VERSION:
|
||||||
message->destroy(message);
|
break;
|
||||||
return JOB_REQUEUE_DIRECT;
|
#endif /* USE_IKEV1 */
|
||||||
|
default:
|
||||||
|
DBG1(DBG_NET, "received unsupported IKE version %d.%d from %H, "
|
||||||
|
"sending INVALID_MAJOR_VERSION",
|
||||||
|
message->get_major_version(message),
|
||||||
|
message->get_minor_version(message),
|
||||||
|
packet->get_source(packet));
|
||||||
|
send_notify(message, INVALID_MAJOR_VERSION, chunk_empty);
|
||||||
|
message->destroy(message);
|
||||||
|
return JOB_REQUEUE_DIRECT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* TODO-IKEv1: drop too agressive mainmodes */
|
||||||
if (message->get_request(message) &&
|
if (message->get_request(message) &&
|
||||||
message->get_exchange_type(message) == IKE_SA_INIT)
|
message->get_exchange_type(message) == IKE_SA_INIT)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user