On Thu, Jul 02, 2015 at 12:45:10AM -0700, Seth wrote:
> I discovered I had thousands of message stuck in my queue from running some
> stress tests earlier which needed removal. Apparently the 'smtpctl remove
> <evpid>|<msgid>' command does not support wild cards.
> 
> Instead, I changed to /var/spool/smtpd/queue and ran this command with root
> privs:
> 
> # 'find . -type f -exec rm {} \;'
> 
> That seemed to do the trick but was wondering if there's any way to
> accomplish the same via the smtpctl utility.
> 
> -- 
> You received this mail because you are subscribed to [email protected]
> To unsubscribe, send a mail to: [email protected]
> 

As far I can see, the smtpctl is capable of...
smtpctl remove all
smtpctl resume envelope all
smtpctl pause envelope all

just like...
smtpctl schedule all

but a cmd_install of the "all" variant is missing.  This diff works
for me, could you try...

diff --git a/smtpd/smtpctl.8 b/smtpd/smtpctl.8
index fa7a661..9369234 100644
--- a/smtpd/smtpctl.8
+++ b/smtpd/smtpctl.8
@@ -99,6 +99,8 @@ Generated bounces.
 .It Cm pause envelope Ar envelope-id | message-id
 Temporarily suspend scheduling for the envelope with the given ID,
 or all envelopes with the given message ID.
+.It Cm pause envelope all
+Temporarily suspend scheduling all the envelopes.
 .It Cm pause mda
 Temporarily stop deliveries to local users.
 .It Cm pause mta
@@ -119,9 +121,13 @@ imsg, to profile cost of event handlers
 .El
 .It Cm remove Ar envelope-id | message-id
 Remove a single envelope, or all envelopes with the same message ID.
+.It Cm remove all
+Remove all envelopes.
 .It Cm resume envelope Ar envelope-id | message-id
 Resume scheduling for the envelope with the given ID,
 or all envelopes with the given message ID.
+.It Cm resume envelope all
+Resume scheduling all the envelopes.
 .It Cm resume mda
 Resume deliveries to local users.
 .It Cm resume mta
diff --git a/smtpd/smtpctl.c b/smtpd/smtpctl.c
index e45a0a0..fa9642e 100644
--- a/smtpd/smtpctl.c
+++ b/smtpd/smtpctl.c
@@ -990,14 +990,17 @@ main(int argc, char **argv)
        cmd_install("monitor",                  do_monitor);
        cmd_install("pause envelope <evpid>",   do_pause_envelope);
        cmd_install("pause envelope <msgid>",   do_pause_envelope);
+       cmd_install("pause envelope all",       do_pause_envelope);
        cmd_install("pause mda",                do_pause_mda);
        cmd_install("pause mta",                do_pause_mta);
        cmd_install("pause smtp",               do_pause_smtp);
        cmd_install("profile <str>",            do_profile);
        cmd_install("remove <evpid>",           do_remove);
        cmd_install("remove <msgid>",           do_remove);
+       cmd_install("remove all",               do_remove);
        cmd_install("resume envelope <evpid>",  do_resume_envelope);
        cmd_install("resume envelope <msgid>",  do_resume_envelope);
+       cmd_install("resume envelope all",      do_resume_envelope);
        cmd_install("resume mda",               do_resume_mda);
        cmd_install("resume mta",               do_resume_mta);
        cmd_install("resume route <routeid>",   do_resume_route);

-- 
You received this mail because you are subscribed to [email protected]
To unsubscribe, send a mail to: [email protected]

Reply via email to