summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorclaudio <claudio@openbsd.org>2015-12-05 13:13:11 +0000
committerclaudio <claudio@openbsd.org>2015-12-05 13:13:11 +0000
commit54fa1b0755c60a6808790ceb36766471376a16f9 (patch)
treed0d7a474708b48fdfd2062921d721e00659abbb6
parentEAGAIN handling for imsg_read. OK henning@ benno@ (diff)
downloadwireguard-openbsd-54fa1b0755c60a6808790ceb36766471376a16f9.tar.xz
wireguard-openbsd-54fa1b0755c60a6808790ceb36766471376a16f9.zip
EAGAIN handling for imsg_read. OK henning@ benno@
-rw-r--r--usr.sbin/relayctl/relayctl.c4
-rw-r--r--usr.sbin/relayd/ca.c4
-rw-r--r--usr.sbin/relayd/control.c5
-rw-r--r--usr.sbin/relayd/proc.c4
4 files changed, 9 insertions, 8 deletions
diff --git a/usr.sbin/relayctl/relayctl.c b/usr.sbin/relayctl/relayctl.c
index d0a6b74beb2..6545548ddf2 100644
--- a/usr.sbin/relayctl/relayctl.c
+++ b/usr.sbin/relayctl/relayctl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: relayctl.c,v 1.55 2015/10/12 12:17:36 semarie Exp $ */
+/* $OpenBSD: relayctl.c,v 1.56 2015/12/05 13:13:11 claudio Exp $ */
/*
* Copyright (c) 2007 - 2013 Reyk Floeter <reyk@openbsd.org>
@@ -207,7 +207,7 @@ main(int argc, char *argv[])
err(1, "write error");
while (!done) {
- if ((n = imsg_read(ibuf)) == -1)
+ if ((n = imsg_read(ibuf)) == -1 && errno != EAGAIN)
errx(1, "imsg_read error");
if (n == 0)
errx(1, "pipe closed");
diff --git a/usr.sbin/relayd/ca.c b/usr.sbin/relayd/ca.c
index a1c4eda7d85..0a1bd5a70da 100644
--- a/usr.sbin/relayd/ca.c
+++ b/usr.sbin/relayd/ca.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ca.c,v 1.15 2015/12/02 13:41:27 reyk Exp $ */
+/* $OpenBSD: ca.c,v 1.16 2015/12/05 13:13:11 claudio Exp $ */
/*
* Copyright (c) 2014 Reyk Floeter <reyk@openbsd.org>
@@ -295,7 +295,7 @@ rsae_send_imsg(int flen, const u_char *from, u_char *to, RSA *rsa,
imsg_flush(ibuf);
while (!done) {
- if ((n = imsg_read(ibuf)) == -1)
+ if ((n = imsg_read(ibuf)) == -1 && errno != EAGAIN)
fatalx("imsg_read");
if (n == 0)
fatalx("pipe closed");
diff --git a/usr.sbin/relayd/control.c b/usr.sbin/relayd/control.c
index bb0a40474e9..3b0a12e28a9 100644
--- a/usr.sbin/relayd/control.c
+++ b/usr.sbin/relayd/control.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: control.c,v 1.51 2015/12/02 13:41:27 reyk Exp $ */
+/* $OpenBSD: control.c,v 1.52 2015/12/05 13:13:11 claudio Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -231,7 +231,8 @@ control_dispatch_imsg(int fd, short event, void *arg)
}
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, cs);
return;
}
diff --git a/usr.sbin/relayd/proc.c b/usr.sbin/relayd/proc.c
index 5d93bc1a041..6652127198d 100644
--- a/usr.sbin/relayd/proc.c
+++ b/usr.sbin/relayd/proc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: proc.c,v 1.25 2015/12/02 13:41:27 reyk Exp $ */
+/* $OpenBSD: proc.c,v 1.26 2015/12/05 13:13:11 claudio Exp $ */
/*
* Copyright (c) 2010 - 2014 Reyk Floeter <reyk@openbsd.org>
@@ -452,7 +452,7 @@ proc_dispatch(int fd, short event, void *arg)
ibuf = &iev->ibuf;
if (event & EV_READ) {
- if ((n = imsg_read(ibuf)) == -1)
+ if ((n = imsg_read(ibuf)) == -1 && errno != EAGAIN)
fatal(__func__);
if (n == 0) {
/* this pipe is dead, so remove the event handler */