From a3f731817a5eeb61bbe58dee91c4d2ed9a5d59a3 Mon Sep 17 00:00:00 2001 From: rodrigc Date: Wed, 9 Dec 2015 19:21:00 +0000 Subject: 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@ --- lib/libopenbsd/imsg.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'lib/libopenbsd/imsg.c') 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 @@ -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; -- cgit v1.1