aboutsummaryrefslogtreecommitdiffstats
path: root/Source/charon/threads
diff options
context:
space:
mode:
authorJan Hutter <jhutter@hsr.ch>2005-12-02 11:38:56 +0000
committerJan Hutter <jhutter@hsr.ch>2005-12-02 11:38:56 +0000
commitae3012a0ea0e06e29212f1967b5b71e90460fb43 (patch)
treea4c055426b079946c4e803fd5534e56b79a41323 /Source/charon/threads
parent2848a7ba33ee0158c9dfee383c3ea8be02060f7e (diff)
downloadstrongswan-ae3012a0ea0e06e29212f1967b5b71e90460fb43.tar.bz2
strongswan-ae3012a0ea0e06e29212f1967b5b71e90460fb43.tar.xz
- added notify message handling to ike_sa_init_requested_t and
responder_init_t
Diffstat (limited to 'Source/charon/threads')
-rw-r--r--Source/charon/threads/thread_pool.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/Source/charon/threads/thread_pool.c b/Source/charon/threads/thread_pool.c
index 661d0fdb7..f6f5278f5 100644
--- a/Source/charon/threads/thread_pool.c
+++ b/Source/charon/threads/thread_pool.c
@@ -182,7 +182,9 @@ static void process_incoming_packet_job(private_thread_pool_t *this, incoming_pa
this->worker_logger->log(this->worker_logger, ERROR, "IKE version %d.%d not supported",
message->get_major_version(message),
message->get_minor_version(message));
- /* Todo send notify */
+ /*
+ * TODO send notify reply of type INVALID_MAJOR_VERSION
+ */
}
message->get_ike_sa_id(message, &ike_sa_id);
@@ -200,16 +202,22 @@ static void process_incoming_packet_job(private_thread_pool_t *this, incoming_pa
this->worker_logger->log(this->worker_logger, ERROR, "IKE SA could not be checked out");
ike_sa_id->destroy(ike_sa_id);
message->destroy(message);
+
+ /*
+ * TODO send notify reply of type INVALID_IKE_SPI if SPI could not be found
+ */
+
return;
}
status = ike_sa->process_message(ike_sa, message);
- if (status != SUCCESS)
+ if ((status != SUCCESS) && (status != DELETE_ME))
{
this->worker_logger->log(this->worker_logger, ERROR, "message could not be processed by IKE SA");
}
- this->worker_logger->log(this->worker_logger, CONTROL|MOST, "checking in IKE SA %lld:%lld, role %s",
+ this->worker_logger->log(this->worker_logger, CONTROL|MOST, "%s IKE SA %lld:%lld, role %s",
+ (status == DELETE_ME) ? "Checkin and delete" : "Checkin",
ike_sa_id->get_initiator_spi(ike_sa_id),
ike_sa_id->get_responder_spi(ike_sa_id),
ike_sa_id->is_initiator(ike_sa_id) ? "initiator" : "responder");