summaryrefslogtreecommitdiffstats
path: root/usr.sbin/dvmrpd
diff options
context:
space:
mode:
authorclaudio <claudio@openbsd.org>2015-12-05 13:11:00 +0000
committerclaudio <claudio@openbsd.org>2015-12-05 13:11:00 +0000
commitb74bd0c0284f6266a86dd9569ecd0e7a72e10a33 (patch)
tree3bc567c77ee0ab67486efad2d2472dbbc436388d /usr.sbin/dvmrpd
parentEAGAIN handling for imsg_read. OK henning@ benno@ (diff)
downloadwireguard-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.c5
-rw-r--r--usr.sbin/dvmrpd/dvmrpd.c6
-rw-r--r--usr.sbin/dvmrpd/dvmrpe.c6
-rw-r--r--usr.sbin/dvmrpd/rde.c6
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;