reimplemented CHILD_SA rekeying & delete

no simultanous transaction with CHILD_SAs yet!
This commit is contained in:
Martin Willi
2006-07-07 07:04:07 +00:00
parent 54da7eb962
commit 698d774918
21 changed files with 1594 additions and 306 deletions
+13 -14
View File
@@ -921,29 +921,28 @@ static void receive_messages(private_kernel_interface_t *this)
else if (hdr->nlmsg_type == XFRM_MSG_EXPIRE)
{
job_t *job;
protocol_id_t protocol;
u_int32_t spi;
struct xfrm_user_expire *expire;
expire = (struct xfrm_user_expire*)NLMSG_DATA(hdr);
protocol = expire->state.id.proto == KERNEL_ESP ?
PROTO_ESP : PROTO_AH;
spi = expire->state.id.spi;
this->logger->log(this->logger, CONTROL|LEVEL1,
"Received a XFRM_MSG_EXPIRE");
expire = (struct xfrm_user_expire*)NLMSG_DATA(hdr);
this->logger->log(this->logger, CONTROL|LEVEL0,
"creating %s job for CHILD_SA with reqid %d",
this->logger->log(this->logger, CONTROL,
"creating %s job for %s CHILD_SA 0x%x",
expire->hard ? "delete" : "rekey",
expire->state.reqid);
mapping_find(protocol_id_m, protocol), ntohl(spi));
if (expire->hard)
{
this->logger->log(this->logger, CONTROL|LEVEL0,
"creating delete job for CHILD_SA with reqid %d",
expire->state.reqid);
job = (job_t*)delete_child_sa_job_create(
expire->state.reqid);
job = (job_t*)delete_child_sa_job_create(protocol, spi);
}
else
{
this->logger->log(this->logger, CONTROL|LEVEL0,
"creating rekey job for CHILD_SA with reqid %d",
expire->state.reqid);
job = (job_t*)rekey_child_sa_job_create(
expire->state.reqid);
job = (job_t*)rekey_child_sa_job_create(protocol, spi);
}
charon->job_queue->add(charon->job_queue, job);
}