mirror of
https://github.com/freebsd/freebsd-src
synced 2024-07-22 18:56:38 +00:00
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@
This commit is contained in:
parent
5b74e28e80
commit
fbb0e1b56a
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=292022
|
@ -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 @@ imsg_read(struct imsgbuf *ibuf)
|
|||
}
|
||||
|
||||
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;
|
||||
|
|
Loading…
Reference in a new issue