summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--usr.sbin/smtpd/queue_backend.c12
-rw-r--r--usr.sbin/smtpd/queue_fsqueue.c12
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