Give processor_t more control over the lifecycle of a job
authorTobias Brunner <tobias@strongswan.org>
Tue, 19 Jun 2012 08:45:17 +0000 (10:45 +0200)
committerTobias Brunner <tobias@strongswan.org>
Mon, 25 Jun 2012 15:10:28 +0000 (17:10 +0200)
commit7fec83af28f233a02b7ae08c6fd4de65799cb6b4
treec1093faa3be57635e0cb8baf112c6edfaa3001e9
parent18d21a57df6085e1738a92d5a352ec17d314a753
Give processor_t more control over the lifecycle of a job

Jobs are now destroyed by the processor, but they are allowed to
reschedule themselves.  That is, parts of the reschedule functionality
already provided by callback_job_t is moved to the processor.  Not yet
fully supported is JOB_REQUEUE_DIRECT and canceling jobs.

Note: job_t.destroy() is now called not only for queued jobs but also
after execution or cancellation of jobs.  job_t.status can be used to
decide what to do in said method.
26 files changed:
src/libcharon/control/controller.c
src/libcharon/processing/jobs/acquire_job.c
src/libcharon/processing/jobs/adopt_children_job.c
src/libcharon/processing/jobs/delete_child_sa_job.c
src/libcharon/processing/jobs/delete_ike_sa_job.c
src/libcharon/processing/jobs/dpd_timeout_job.c
src/libcharon/processing/jobs/inactivity_job.c
src/libcharon/processing/jobs/initiate_mediation_job.c
src/libcharon/processing/jobs/mediation_job.c
src/libcharon/processing/jobs/migrate_job.c
src/libcharon/processing/jobs/process_message_job.c
src/libcharon/processing/jobs/rekey_child_sa_job.c
src/libcharon/processing/jobs/rekey_ike_sa_job.c
src/libcharon/processing/jobs/retransmit_job.c
src/libcharon/processing/jobs/retry_initiate_job.c
src/libcharon/processing/jobs/roam_job.c
src/libcharon/processing/jobs/send_dpd_job.c
src/libcharon/processing/jobs/send_keepalive_job.c
src/libcharon/processing/jobs/start_action_job.c
src/libcharon/processing/jobs/update_sa_job.c
src/libstrongswan/processing/jobs/callback_job.c
src/libstrongswan/processing/jobs/callback_job.h
src/libstrongswan/processing/jobs/job.h
src/libstrongswan/processing/processor.c
src/libstrongswan/processing/processor.h
src/libstrongswan/processing/scheduler.c