diff options
author | 2015-12-05 13:13:11 +0000 | |
---|---|---|
committer | 2015-12-05 13:13:11 +0000 | |
commit | 54fa1b0755c60a6808790ceb36766471376a16f9 (patch) | |
tree | d0d7a474708b48fdfd2062921d721e00659abbb6 | |
parent | EAGAIN handling for imsg_read. OK henning@ benno@ (diff) | |
download | wireguard-openbsd-54fa1b0755c60a6808790ceb36766471376a16f9.tar.xz wireguard-openbsd-54fa1b0755c60a6808790ceb36766471376a16f9.zip |
EAGAIN handling for imsg_read. OK henning@ benno@
-rw-r--r-- | usr.sbin/relayctl/relayctl.c | 4 | ||||
-rw-r--r-- | usr.sbin/relayd/ca.c | 4 | ||||
-rw-r--r-- | usr.sbin/relayd/control.c | 5 | ||||
-rw-r--r-- | usr.sbin/relayd/proc.c | 4 |
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 */ |