diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/src/daemon.c | 5 | ||||
-rw-r--r-- | src/src/exim.c | 11 |
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 { |