#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.
master
Javier Sánchez Parra 2020-05-13 15:44:28 +02:00 committed by OpenGnSys Support Team
parent 6c7d827904
commit a63ec0ba7f
3 changed files with 7 additions and 6 deletions

View File

@ -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

View File

@ -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);

View File

@ -21,6 +21,7 @@ struct og_schedule_time {
enum og_schedule_type {
OG_SCHEDULE_TASK,
OG_SCHEDULE_PROCEDURE,
OG_SCHEDULE_COMMAND,
};