summaryrefslogtreecommitdiffstats
path: root/usr.sbin/smtpd/ramqueue.c
diff options
context:
space:
mode:
authorgilles <gilles@openbsd.org>2011-10-23 13:03:04 +0000
committergilles <gilles@openbsd.org>2011-10-23 13:03:04 +0000
commitb31e10023616b799aa8b605c84a7be9dad0a175c (patch)
treed58b4e85f57319ba0ac9cbfc2e00dabd7ce30e77 /usr.sbin/smtpd/ramqueue.c
parentmissing apostrophe; from wiz@netbsd (diff)
downloadwireguard-openbsd-b31e10023616b799aa8b605c84a7be9dad0a175c.tar.xz
wireguard-openbsd-b31e10023616b799aa8b605c84a7be9dad0a175c.zip
introduce Q_CORRUPT and queue_backend operation to move a message from
schedule queue to corrupt queue upon envelope loading failure. tested by me, ok eric@
Diffstat (limited to 'usr.sbin/smtpd/ramqueue.c')
-rw-r--r--usr.sbin/smtpd/ramqueue.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/usr.sbin/smtpd/ramqueue.c b/usr.sbin/smtpd/ramqueue.c
index aba38b5560f..6290c42115a 100644
--- a/usr.sbin/smtpd/ramqueue.c
+++ b/usr.sbin/smtpd/ramqueue.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ramqueue.c,v 1.20 2011/10/23 09:30:07 gilles Exp $ */
+/* $OpenBSD: ramqueue.c,v 1.21 2011/10/23 13:03:05 gilles Exp $ */
/*
* Copyright (c) 2011 Gilles Chehade <gilles@openbsd.org>
@@ -154,8 +154,11 @@ ramqueue_load(struct ramqueue *rqueue, time_t *nsched)
if ((evpid = filename_to_evpid(basename(path))) == 0)
continue;
- if (! queue_envelope_load(Q_QUEUE, evpid, &envelope))
+ if (! queue_envelope_load(Q_QUEUE, evpid, &envelope)) {
+ log_debug("failed to load envelope");
+ queue_message_corrupt(Q_QUEUE, evpid_to_msgid(evpid));
continue;
+ }
if (ramqueue_expire(&envelope, curtm))
continue;
ramqueue_insert(rqueue, &envelope, curtm);