From fa665e0b7252b5916f0fbd57d6ef8c1f0a9b080f Mon Sep 17 00:00:00 2001 From: Jeremy Harris Date: Sun, 8 May 2016 13:25:57 +0100 Subject: periodic queue runner --- src/src/daemon.c | 5 ++++- src/src/exim.c | 11 +++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/src/daemon.c b/src/src/daemon.c index 635b94055..60ef33773 100644 --- a/src/src/daemon.c +++ b/src/src/daemon.c @@ -1835,7 +1835,10 @@ for (;;) if (deliver_force_thaw) *p++ = 'f'; if (queue_run_local) *p++ = 'l'; *p = 0; - extra[0] = opt; + if (queue_name) + extra[0] = string_sprintf("%sG%s", opt, queue_name); + else + extra[0] = opt; /* If -R or -S were on the original command line, ensure they get passed on. */ diff --git a/src/src/exim.c b/src/src/exim.c index e4597c287..ea0d0b790 100644 --- a/src/src/exim.c +++ b/src/src/exim.c @@ -3243,8 +3243,11 @@ for (i = 1; i < argc; i++) if (*argrest == 'G') { - queue_name = string_copy(argrest+1); - do ++argrest; while (*argrest); + int i; + for (argrest++, i = 0; argrest[i] && argrest[i] != '/'; ) i++; + queue_name = string_copyn(argrest, i); + argrest += i; + if (*argrest == '/') argrest++; } /* -q[f][f][l][G]: Run the queue, optionally forced, optionally local @@ -3260,8 +3263,8 @@ for (i = 1; i < argc; i++) stop_queue_run_id = argv[++i]; } - /* -q[f][f][l]: Run the queue at regular intervals, optionally forced, - optionally local only. */ + /* -q[f][f][l][G/]: Run the queue at regular intervals, optionally + forced, optionally local only, optionally named. */ else { -- cgit v1.2.3