summaryrefslogtreecommitdiffstats
path: root/usr.sbin/smtpd/mproc.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/smtpd/mproc.c')
-rw-r--r--usr.sbin/smtpd/mproc.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/usr.sbin/smtpd/mproc.c b/usr.sbin/smtpd/mproc.c
index b37cfe8be08..0ca56245c80 100644
--- a/usr.sbin/smtpd/mproc.c
+++ b/usr.sbin/smtpd/mproc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: mproc.c,v 1.1 2013/01/26 09:37:23 gilles Exp $ */
+/* $OpenBSD: mproc.c,v 1.2 2013/01/31 18:34:43 eric Exp $ */
/*
* Copyright (c) 2012 Eric Faurot <eric@faurot.net>
@@ -171,8 +171,11 @@ mproc_dispatch(int fd, short event, void *arg)
}
for (;;) {
- if ((n = imsg_get(&p->imsgbuf, &imsg)) == -1)
- fatal("imsg_get");
+ if ((n = imsg_get(&p->imsgbuf, &imsg)) == -1) {
+ log_warn("fatal: %s: error in imsg_get for %s",
+ proc_name(smtpd_process), p->name);
+ fatalx(NULL);
+ }
if (n == 0)
break;
@@ -316,11 +319,11 @@ m_create(struct mproc *p, uint32_t type, uint32_t peerid, pid_t pid, int fd,
reqlen = len;
p->ibuf = imsg_create(&p->imsgbuf, type, peerid, pid, len);
- /* Is this a problem with imsg? */
- p->ibuf->fd = fd;
-
if (p->ibuf == NULL)
fatal("imsg_create");
+
+ /* Is this a problem with imsg? */
+ p->ibuf->fd = fd;
}
void
@@ -346,6 +349,12 @@ m_close(struct mproc *p)
proc_name(smtpd_process),
proc_name(p->proc),
imsg_to_str(reqtype));
+ else if (verbose & TRACE_IMSGSIZE)
+ log_debug("msg-len: ok %zu : %s -> %s : %s",
+ p->ibuf->wpos - IMSG_HEADER_SIZE,
+ proc_name(smtpd_process),
+ proc_name(p->proc),
+ imsg_to_str(reqtype));
p->msg_out += 1;
p->bytes_queued += p->ibuf->wpos;