summaryrefslogtreecommitdiff
path: root/res/res_pjsip/pjsip_scheduler.c
diff options
context:
space:
mode:
Diffstat (limited to 'res/res_pjsip/pjsip_scheduler.c')
-rw-r--r--res/res_pjsip/pjsip_scheduler.c32
1 files changed, 14 insertions, 18 deletions
diff --git a/res/res_pjsip/pjsip_scheduler.c b/res/res_pjsip/pjsip_scheduler.c
index 27202c602..e4459da66 100644
--- a/res/res_pjsip/pjsip_scheduler.c
+++ b/res/res_pjsip/pjsip_scheduler.c
@@ -373,7 +373,7 @@ static char *cli_show_tasks(struct ast_cli_entry *e, int cmd, struct ast_cli_arg
struct ast_tm tm;
char queued[32];
char last_start[32];
- char last_end[32];
+ char next_start[32];
int datelen;
struct timeval now = ast_tvnow();
const char *separator = "======================================";
@@ -397,19 +397,21 @@ static char *cli_show_tasks(struct ast_cli_entry *e, int cmd, struct ast_cli_arg
ast_cli(a->fd, "PJSIP Scheduled Tasks:\n\n");
- ast_cli(a->fd, " %1$-24s %2$-8s %3$-9s %4$-7s %6$-*5$s %7$-*5$s %8$-*5$s\n",
+ ast_cli(a->fd, " %1$-24s %2$-9s %3$-9s %4$-5s %6$-*5$s %7$-*5$s %8$-*5$s %9$7s\n",
"Task Name", "Interval", "Times Run", "State",
- datelen, "Queued", "Last Started", "Last Ended");
+ datelen, "Queued", "Last Started", "Next Start", "( secs)");
- ast_cli(a->fd, " %1$-24.24s %2$-8.8s %3$-9.9s %4$-7.7s %6$-*5$.*5$s %7$-*5$.*5$s %8$-*5$.*5$s\n",
+ ast_cli(a->fd, " %1$-24.24s %2$-9.9s %3$-9.9s %4$-5.5s %6$-*5$.*5$s %7$-*5$.*5$s %9$-*8$.*8$s\n",
separator, separator, separator, separator,
- datelen, separator, separator, separator);
+ datelen, separator, separator, datelen + 8, separator);
ao2_ref(tasks, +1);
ao2_rdlock(tasks);
i = ao2_iterator_init(tasks, 0);
while ((schtd = ao2_iterator_next(&i))) {
+ int next_run_sec = ast_sip_sched_task_get_next_run(schtd) / 1000;
+ struct timeval next = ast_tvadd(now, (struct timeval) {next_run_sec, 0});
ast_localtime(&schtd->when_queued, &tm, NULL);
ast_strftime(queued, sizeof(queued), log_format, &tm);
@@ -421,23 +423,17 @@ static char *cli_show_tasks(struct ast_cli_entry *e, int cmd, struct ast_cli_arg
ast_strftime(last_start, sizeof(last_start), log_format, &tm);
}
- if (ast_tvzero(schtd->last_end)) {
- if (ast_tvzero(schtd->last_start)) {
- strcpy(last_end, "not yet started");
- } else {
- strcpy(last_end, "running");
- }
- } else {
- ast_localtime(&schtd->last_end, &tm, NULL);
- ast_strftime(last_end, sizeof(last_end), log_format, &tm);
- }
+ ast_localtime(&next, &tm, NULL);
+ ast_strftime(next_start, sizeof(next_start), log_format, &tm);
- ast_cli(a->fd, " %1$-24.24s %2$-8.3f %3$-9d %4$-7s %6$-*5$s %7$-*5$s %8$-*5$s\n",
+ ast_cli(a->fd, " %1$-24.24s %2$9.3f %3$9d %4$-5s %6$-*5$s %7$-*5$s %8$-*5$s (%9$5d)\n",
schtd->name,
schtd->interval / 1000.0,
schtd->run_count,
- schtd->is_running ? "running" : "waiting",
- datelen, queued, last_start, last_end);
+ schtd->is_running ? "run" : "wait",
+ datelen, queued, last_start,
+ next_start,
+ next_run_sec);
ao2_cleanup(schtd);
}
ao2_iterator_destroy(&i);