diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/rest.c | 16 | ||||
-rw-r--r-- | src/schedule.h | 1 |
2 files changed, 14 insertions, 3 deletions
@@ -2666,7 +2666,7 @@ static int og_cmd_legacy(const char *input, struct og_cmd *cmd) return err; } -static int og_dbi_add_action(const struct og_dbi *dbi, const struct og_task *task, +static int og_dbi_add_action(const struct og_dbi *dbi, struct og_task *task, struct og_cmd *cmd) { char start_date_string[24]; @@ -2692,7 +2692,7 @@ static int og_dbi_add_action(const struct og_dbi *dbi, const struct og_task *tas "VALUES (%d, %d, %d, '%s', '%s', %d, %d, '%s', " "'%s', %d, %d, %d, %d, '%s', %d, %d, %d)", cmd->client_id, EJECUCION_TAREA, task->task_id, - "", cmd->ip, 0, task->command_id, + "", cmd->ip, task->session, task->command_id, task->params, start_date_string, ACCION_INICIADA, ACCION_SINRESULTADO, task->type_scope, task->scope, "", @@ -2704,13 +2704,23 @@ static int og_dbi_add_action(const struct og_dbi *dbi, const struct og_task *tas __func__, __LINE__, msglog); return -1; } + cmd->id = dbi_conn_sequence_last(dbi->conn, NULL); + if (!task->session) { + task->session = cmd->id; + dbi_result_free(result); + result = dbi_conn_queryf(dbi->conn, + "UPDATE acciones SET sesion=%d " + "WHERE idaccion=%d", + task->session, cmd->id); + } + dbi_result_free(result); return 0; } -static int og_queue_task_command(struct og_dbi *dbi, const struct og_task *task, +static int og_queue_task_command(struct og_dbi *dbi, struct og_task *task, char *query) { struct og_cmd *cmd; diff --git a/src/schedule.h b/src/schedule.h index 12c394c..69dbde9 100644 --- a/src/schedule.h +++ b/src/schedule.h @@ -55,6 +55,7 @@ struct og_task { uint32_t center_id; uint32_t schedule_id; uint32_t type_scope; + uint32_t session; uint32_t scope; const char *filtered_scope; const char *params; |