diff options
author | claudio <claudio@openbsd.org> | 2015-12-05 13:11:00 +0000 |
---|---|---|
committer | claudio <claudio@openbsd.org> | 2015-12-05 13:11:00 +0000 |
commit | b74bd0c0284f6266a86dd9569ecd0e7a72e10a33 (patch) | |
tree | 3bc567c77ee0ab67486efad2d2472dbbc436388d /usr.sbin/dvmrpd | |
parent | EAGAIN handling for imsg_read. OK henning@ benno@ (diff) | |
download | wireguard-openbsd-b74bd0c0284f6266a86dd9569ecd0e7a72e10a33.tar.xz wireguard-openbsd-b74bd0c0284f6266a86dd9569ecd0e7a72e10a33.zip |
EAGAIN handling for imsg_read. OK henning@ benno@
Diffstat (limited to 'usr.sbin/dvmrpd')
-rw-r--r-- | usr.sbin/dvmrpd/control.c | 5 | ||||
-rw-r--r-- | usr.sbin/dvmrpd/dvmrpd.c | 6 | ||||
-rw-r--r-- | usr.sbin/dvmrpd/dvmrpe.c | 6 | ||||
-rw-r--r-- | usr.sbin/dvmrpd/rde.c | 6 |
4 files changed, 12 insertions, 11 deletions
diff --git a/usr.sbin/dvmrpd/control.c b/usr.sbin/dvmrpd/control.c index 4483d54481f..4ee92fbb4af 100644 --- a/usr.sbin/dvmrpd/control.c +++ b/usr.sbin/dvmrpd/control.c @@ -1,4 +1,4 @@ -/* $OpenBSD: control.c,v 1.20 2015/02/09 11:45:22 claudio Exp $ */ +/* $OpenBSD: control.c,v 1.21 2015/12/05 13:11:00 claudio Exp $ */ /* * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org> @@ -221,7 +221,8 @@ control_dispatch_imsg(int fd, short event, void *bula) } if (event & EV_READ) { - if ((n = imsg_read(&c->iev.ibuf)) == -1 || n == 0) { + if (((n = imsg_read(&c->iev.ibuf)) == -1 && errno != EAGAIN) || + n == 0) { control_close(fd); return; } diff --git a/usr.sbin/dvmrpd/dvmrpd.c b/usr.sbin/dvmrpd/dvmrpd.c index 6a6f2f791f0..b3852e234b5 100644 --- a/usr.sbin/dvmrpd/dvmrpd.c +++ b/usr.sbin/dvmrpd/dvmrpd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dvmrpd.c,v 1.19 2015/02/10 08:49:30 claudio Exp $ */ +/* $OpenBSD: dvmrpd.c,v 1.20 2015/12/05 13:11:00 claudio Exp $ */ /* * Copyright (c) 2005 Claudio Jeker <claudio@openbsd.org> @@ -356,7 +356,7 @@ main_dispatch_dvmrpe(int fd, short event, void *bula) int verbose; if (event & EV_READ) { - if ((n = imsg_read(ibuf)) == -1) + if ((n = imsg_read(ibuf)) == -1 && errno != EAGAIN) fatal("imsg_read error"); if (n == 0) /* connection closed */ fatalx("pipe closed"); @@ -409,7 +409,7 @@ main_dispatch_rde(int fd, short event, void *bula) ssize_t n; if (event & EV_READ) { - if ((n = imsg_read(ibuf)) == -1) + if ((n = imsg_read(ibuf)) == -1 && errno != EAGAIN) fatal("imsg_read error"); if (n == 0) /* connection closed */ fatalx("pipe closed"); diff --git a/usr.sbin/dvmrpd/dvmrpe.c b/usr.sbin/dvmrpd/dvmrpe.c index 0059aaea1ff..073fd993f86 100644 --- a/usr.sbin/dvmrpd/dvmrpe.c +++ b/usr.sbin/dvmrpd/dvmrpe.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dvmrpe.c,v 1.14 2015/02/10 08:49:30 claudio Exp $ */ +/* $OpenBSD: dvmrpe.c,v 1.15 2015/12/05 13:11:00 claudio Exp $ */ /* * Copyright (c) 2005 Claudio Jeker <claudio@openbsd.org> @@ -243,7 +243,7 @@ dvmrpe_dispatch_main(int fd, short event, void *bula) int link_ok; if (event & EV_READ) { - if ((n = imsg_read(ibuf)) == -1) + if ((n = imsg_read(ibuf)) == -1 && errno != EAGAIN) fatal("imsg_read error"); if (n == 0) /* connection closed */ fatalx("pipe closed"); @@ -308,7 +308,7 @@ dvmrpe_dispatch_rde(int fd, short event, void *bula) ssize_t n; if (event & EV_READ) { - if ((n = imsg_read(ibuf)) == -1) + if ((n = imsg_read(ibuf)) == -1 && errno != EAGAIN) fatal("imsg_read error"); if (n == 0) /* connection closed */ fatalx("pipe closed"); diff --git a/usr.sbin/dvmrpd/rde.c b/usr.sbin/dvmrpd/rde.c index 8add327c20b..6f65e96f034 100644 --- a/usr.sbin/dvmrpd/rde.c +++ b/usr.sbin/dvmrpd/rde.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rde.c,v 1.24 2014/07/12 19:22:32 krw Exp $ */ +/* $OpenBSD: rde.c,v 1.25 2015/12/05 13:11:00 claudio Exp $ */ /* * Copyright (c) 2004, 2005 Claudio Jeker <claudio@openbsd.org> @@ -203,7 +203,7 @@ rde_dispatch_imsg(int fd, short event, void *bula) struct iface *iface; if (event & EV_READ) { - if ((n = imsg_read(ibuf)) == -1) + if ((n = imsg_read(ibuf)) == -1 && errno != EAGAIN) fatal("imsg_read error"); if (n == 0) /* connection closed */ fatalx("pipe closed"); @@ -215,7 +215,7 @@ rde_dispatch_imsg(int fd, short event, void *bula) for (;;) { if ((n = imsg_get(ibuf, &imsg)) == -1) - fatal("rde_dispatch_imsg: imsg_read error"); + fatal("rde_dispatch_imsg: imsg_get error"); if (n == 0) break; |