summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeremy Harris <jgh146exb@wizmail.org>2016-05-08 13:25:57 +0100
committerJeremy Harris <jgh146exb@wizmail.org>2016-05-08 13:25:57 +0100
commitfa665e0b7252b5916f0fbd57d6ef8c1f0a9b080f (patch)
tree2c0f441cfd619568085193a9c0c55d3ce902e2c9 /src
parentdc7e5e528d1193fdd82676e451ac32751f28851b (diff)
periodic queue runner
Diffstat (limited to 'src')
-rw-r--r--src/src/daemon.c5
-rw-r--r--src/src/exim.c11
2 files changed, 11 insertions, 5 deletions
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<name>]: 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]<n>: Run the queue at regular intervals, optionally forced,
- optionally local only. */
+ /* -q[f][f][l][G<name>/]<n>: Run the queue at regular intervals, optionally
+ forced, optionally local only, optionally named. */
else
{