summaryrefslogtreecommitdiffstats
path: root/lib/libopenbsd/imsg.c
diff options
context:
space:
mode:
authorrodrigc <rodrigc@FreeBSD.org>2015-12-09 19:21:00 +0000
committerrodrigc <rodrigc@FreeBSD.org>2015-12-09 19:21:00 +0000
commita3f731817a5eeb61bbe58dee91c4d2ed9a5d59a3 (patch)
tree744f66260e3e6679470cd9341b5af3199dd06fbd /lib/libopenbsd/imsg.c
parentfaacf71db101af4ffb2731f406450f80a0952b21 (diff)
downloadFreeBSD-src-a3f731817a5eeb61bbe58dee91c4d2ed9a5d59a3.zip
FreeBSD-src-a3f731817a5eeb61bbe58dee91c4d2ed9a5d59a3.tar.gz
Merge from OpenBSD:
revision 1.12 date: 2015/12/05 13:06:52; author: claudio; state: Exp; lines: +4 -6 Do not loop on EAGAIN in imsg_read(). Better to return the error to the caller and let him do another poll loop. This fixes spinning relayd processes seen on busy TLS relays. OK benno@ henning@
Diffstat (limited to 'lib/libopenbsd/imsg.c')
-rw-r--r--lib/libopenbsd/imsg.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/lib/libopenbsd/imsg.c b/lib/libopenbsd/imsg.c
index b049881..be0fdd1 100644
--- a/lib/libopenbsd/imsg.c
+++ b/lib/libopenbsd/imsg.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: imsg.c,v 1.11 2015/11/27 01:57:59 mmcc Exp $ */
+/* $OpenBSD: imsg.c,v 1.12 2015/12/05 13:06:52 claudio Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -82,11 +82,9 @@ again:
}
if ((n = recvmsg(ibuf->fd, &msg, 0)) == -1) {
- if (errno == EMSGSIZE)
- goto fail;
- if (errno != EINTR && errno != EAGAIN)
- goto fail;
- goto again;
+ if (errno == EINTR)
+ goto again;
+ goto fail;
}
ibuf->r.wpos += n;
OpenPOWER on IntegriCloud