diff options
-rw-r--r-- | usr.sbin/smtpd/queue_backend.c | 12 | ||||
-rw-r--r-- | usr.sbin/smtpd/queue_fsqueue.c | 12 |
2 files changed, 12 insertions, 12 deletions
diff --git a/usr.sbin/smtpd/queue_backend.c b/usr.sbin/smtpd/queue_backend.c index ce82d416062..e6ec91bc385 100644 --- a/usr.sbin/smtpd/queue_backend.c +++ b/usr.sbin/smtpd/queue_backend.c @@ -1,4 +1,4 @@ -/* $OpenBSD: queue_backend.c,v 1.20 2012/01/14 15:13:14 chl Exp $ */ +/* $OpenBSD: queue_backend.c,v 1.21 2012/06/01 11:42:34 eric Exp $ */ /* * Copyright (c) 2011 Gilles Chehade <gilles@openbsd.org> @@ -96,7 +96,15 @@ queue_message_fd_rw(enum queue_kind qkind, u_int32_t msgid) int queue_envelope_create(enum queue_kind qkind, struct envelope *ep) { - return env->sc_queue->envelope(qkind, QOP_CREATE, ep); + int r; + + ep->creation = time(NULL); + r = env->sc_queue->envelope(qkind, QOP_CREATE, ep); + if (!r) { + ep->creation = 0; + ep->id = 0; + } + return (r); } int diff --git a/usr.sbin/smtpd/queue_fsqueue.c b/usr.sbin/smtpd/queue_fsqueue.c index 7158da0d4e2..2113ae42f6f 100644 --- a/usr.sbin/smtpd/queue_fsqueue.c +++ b/usr.sbin/smtpd/queue_fsqueue.c @@ -1,4 +1,4 @@ -/* $OpenBSD: queue_fsqueue.c,v 1.40 2012/06/01 09:24:58 eric Exp $ */ +/* $OpenBSD: queue_fsqueue.c,v 1.41 2012/06/01 11:42:34 eric Exp $ */ /* * Copyright (c) 2011 Gilles Chehade <gilles@openbsd.org> @@ -187,23 +187,15 @@ fsqueue_envelope_create(enum queue_kind qkind, struct envelope *ep) char evpname[MAXPATHLEN]; u_int64_t evpid; struct stat sb; - int r; again: evpid = queue_generate_evpid(evpid_to_msgid(ep->id)); fsqueue_envelope_path(qkind, evpid, evpname, sizeof(evpname)); if (stat(evpname, &sb) != -1 || errno != ENOENT) goto again; - - ep->creation = time(NULL); ep->id = evpid; - if ((r = fsqueue_envelope_dump_atomic(evpname, ep)) == 0) { - ep->creation = 0; - ep->id = 0; - } - - return (r); + return (fsqueue_envelope_dump_atomic(evpname, ep)); } static int |