diff options
author | Javier Sánchez Parra <jsanchez@soleta.eu> | 2020-05-13 15:44:28 +0200 |
---|---|---|
committer | OpenGnSys Support Team <soporte-og@soleta.eu> | 2020-05-19 18:29:46 +0200 |
commit | 0b406214860fca254b4efb62a5ad0ecf655896ae (patch) | |
tree | b98451cf6be1c41fc08748fbf2c77becec1e9f7f | |
parent | 4a38f92b1f6f6653288747d3eb75a330fa6c083b (diff) |
#942 Fix immediate procedures
New versions of ogAdmServer handle pending commands in a different way.
Instant procedures uses the old way, now unsupported, so we need to
adapt instant procedures.
This commit adapts instant procedures to work with the new pending
commands implementation.
-rw-r--r-- | admin/Sources/Services/ogAdmServer/sources/ogAdmServer.c | 6 | ||||
-rw-r--r-- | admin/Sources/Services/ogAdmServer/sources/schedule.c | 6 | ||||
-rw-r--r-- | admin/Sources/Services/ogAdmServer/sources/schedule.h | 1 |
3 files changed, 7 insertions, 6 deletions
diff --git a/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.c b/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.c index 85d19685..75379311 100644 --- a/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.c +++ b/admin/Sources/Services/ogAdmServer/sources/ogAdmServer.c @@ -3702,6 +3702,7 @@ void og_schedule_run(unsigned int task_id, unsigned int schedule_id, case OG_SCHEDULE_TASK: og_dbi_queue_task(dbi, task_id, schedule_id); break; + case OG_SCHEDULE_PROCEDURE: case OG_SCHEDULE_COMMAND: og_dbi_queue_command(dbi, task_id, schedule_id); break; @@ -3834,6 +3835,9 @@ static int og_dbi_schedule_create(struct og_dbi *dbi, case OG_SCHEDULE_TASK: type = 3; break; + case OG_SCHEDULE_PROCEDURE: + type = 2; + break; case OG_SCHEDULE_COMMAND: session = atoi(params->task_id); type = 1; @@ -4030,6 +4034,8 @@ static int og_task_schedule_create(struct og_msg_params *params) if (!strcmp(params->type, "task")) type = OG_SCHEDULE_TASK; + else if (!strcmp(params->type, "procedure")) + type = OG_SCHEDULE_PROCEDURE; else if (!strcmp(params->type, "command")) type = OG_SCHEDULE_COMMAND; else diff --git a/admin/Sources/Services/ogAdmServer/sources/schedule.c b/admin/Sources/Services/ogAdmServer/sources/schedule.c index 6f886d31..64d10d9a 100644 --- a/admin/Sources/Services/ogAdmServer/sources/schedule.c +++ b/admin/Sources/Services/ogAdmServer/sources/schedule.c @@ -14,13 +14,7 @@ static LIST_HEAD(schedule_list); static void og_schedule_add(struct og_schedule *new) { struct og_schedule *schedule, *next; - time_t now; - now = time(NULL); - if (new->seconds < now) { - free(new); - return; - } list_for_each_entry_safe(schedule, next, &schedule_list, list) { if (new->seconds < schedule->seconds) { list_add_tail(&new->list, &schedule->list); diff --git a/admin/Sources/Services/ogAdmServer/sources/schedule.h b/admin/Sources/Services/ogAdmServer/sources/schedule.h index c6657fb7..8e0ab8a1 100644 --- a/admin/Sources/Services/ogAdmServer/sources/schedule.h +++ b/admin/Sources/Services/ogAdmServer/sources/schedule.h @@ -21,6 +21,7 @@ struct og_schedule_time { enum og_schedule_type { OG_SCHEDULE_TASK, + OG_SCHEDULE_PROCEDURE, OG_SCHEDULE_COMMAND, }; |