diff options
author | Martin Willi <martin@revosec.ch> | 2011-11-15 14:03:24 +0100 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2012-03-20 17:30:39 +0100 |
commit | 867701bc6ddce3a5c4024a22b4715936bfcbb13e (patch) | |
tree | f6c47467d5e8bd2388e42a4866513c913ce88cd5 | |
parent | 526b5afb4510163372f7981e57d69fad3ea53906 (diff) | |
download | strongswan-867701bc6ddce3a5c4024a22b4715936bfcbb13e.tar.bz2 strongswan-867701bc6ddce3a5c4024a22b4715936bfcbb13e.tar.xz |
Accept and process IKEv1 messages in receiver
-rw-r--r-- | src/libcharon/network/receiver.c | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/src/libcharon/network/receiver.c b/src/libcharon/network/receiver.c index ec30fca61..3e75d9b04 100644 --- a/src/libcharon/network/receiver.c +++ b/src/libcharon/network/receiver.c @@ -162,6 +162,7 @@ static void send_notify(message_t *request, notify_type_t type, chunk_t data) 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 */ - 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, " - "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; + case IKEV2_MAJOR_VERSION: + break; +#ifdef USE_IKEV1 + case IKEV1_MAJOR_VERSION: + break; +#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) && message->get_exchange_type(message) == IKE_SA_INIT) { |