diff options
author | 2013-11-26 11:32:30 +0000 | |
---|---|---|
committer | 2013-11-26 11:32:30 +0000 | |
commit | 05be5610df84b43a9a6b3b6e50de66c6ce6b688b (patch) | |
tree | e874a3e682f07169f836a77541fbdc9f07c091bb | |
parent | instead of calculating the icmp checksum here, just set the flag that (diff) | |
download | wireguard-openbsd-05be5610df84b43a9a6b3b6e50de66c6ce6b688b.tar.xz wireguard-openbsd-05be5610df84b43a9a6b3b6e50de66c6ce6b688b.zip |
deal with msgbuf_write EAGAIN, ok gilles benno
-rw-r--r-- | usr.sbin/dvmrpd/control.c | 4 | ||||
-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 | 4 | ||||
-rw-r--r-- | usr.sbin/ldapd/imsgev.c | 2 |
5 files changed, 11 insertions, 11 deletions
diff --git a/usr.sbin/dvmrpd/control.c b/usr.sbin/dvmrpd/control.c index c3cbde4050f..0bfd1e5311b 100644 --- a/usr.sbin/dvmrpd/control.c +++ b/usr.sbin/dvmrpd/control.c @@ -1,4 +1,4 @@ -/* $OpenBSD: control.c,v 1.17 2013/03/11 17:40:11 deraadt Exp $ */ +/* $OpenBSD: control.c,v 1.18 2013/11/26 11:32:30 henning Exp $ */ /* * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org> @@ -229,7 +229,7 @@ control_dispatch_imsg(int fd, short event, void *bula) } } if (event & EV_WRITE) { - if (msgbuf_write(&c->iev.ibuf.w) == -1) { + if (msgbuf_write(&c->iev.ibuf.w) == -1 && errno != EAGAIN) { control_close(fd); return; } diff --git a/usr.sbin/dvmrpd/dvmrpd.c b/usr.sbin/dvmrpd/dvmrpd.c index 2fe8bc1b4c8..d1ddf5a7b77 100644 --- a/usr.sbin/dvmrpd/dvmrpd.c +++ b/usr.sbin/dvmrpd/dvmrpd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dvmrpd.c,v 1.14 2011/08/20 19:02:28 sthen Exp $ */ +/* $OpenBSD: dvmrpd.c,v 1.15 2013/11/26 11:32:30 henning Exp $ */ /* * Copyright (c) 2005 Claudio Jeker <claudio@openbsd.org> @@ -366,7 +366,7 @@ main_dispatch_dvmrpe(int fd, short event, void *bula) fatalx("pipe closed"); } if (event & EV_WRITE) { - if (msgbuf_write(&ibuf->w) == -1) + if (msgbuf_write(&ibuf->w) == -1 && errno != EAGAIN) fatal("msgbuf_write"); } @@ -419,7 +419,7 @@ main_dispatch_rde(int fd, short event, void *bula) fatalx("pipe closed"); } if (event & EV_WRITE) { - if (msgbuf_write(&ibuf->w) == -1) + if (msgbuf_write(&ibuf->w) == -1 && errno != EAGAIN) fatal("msgbuf_write"); } diff --git a/usr.sbin/dvmrpd/dvmrpe.c b/usr.sbin/dvmrpd/dvmrpe.c index a69753c0c08..fd45b7a2cc7 100644 --- a/usr.sbin/dvmrpd/dvmrpe.c +++ b/usr.sbin/dvmrpd/dvmrpe.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dvmrpe.c,v 1.10 2011/07/04 04:34:14 claudio Exp $ */ +/* $OpenBSD: dvmrpe.c,v 1.11 2013/11/26 11:32:31 henning Exp $ */ /* * Copyright (c) 2005 Claudio Jeker <claudio@openbsd.org> @@ -249,7 +249,7 @@ dvmrpe_dispatch_main(int fd, short event, void *bula) fatalx("pipe closed"); } if (event & EV_WRITE) { - if (msgbuf_write(&ibuf->w) == -1) + if (msgbuf_write(&ibuf->w) == -1 && errno != EAGAIN) fatal("msgbuf_write"); } @@ -314,7 +314,7 @@ dvmrpe_dispatch_rde(int fd, short event, void *bula) fatalx("pipe closed"); } if (event & EV_WRITE) { - if (msgbuf_write(&ibuf->w) == -1) + if (msgbuf_write(&ibuf->w) == -1 && errno != EAGAIN) fatal("msgbuf_write"); } diff --git a/usr.sbin/dvmrpd/rde.c b/usr.sbin/dvmrpd/rde.c index 6701cf557f6..5fe56d6e81e 100644 --- a/usr.sbin/dvmrpd/rde.c +++ b/usr.sbin/dvmrpd/rde.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rde.c,v 1.22 2009/11/02 20:31:50 claudio Exp $ */ +/* $OpenBSD: rde.c,v 1.23 2013/11/26 11:32:31 henning Exp $ */ /* * Copyright (c) 2004, 2005 Claudio Jeker <claudio@openbsd.org> @@ -209,7 +209,7 @@ rde_dispatch_imsg(int fd, short event, void *bula) fatalx("pipe closed"); } if (event & EV_WRITE) { - if (msgbuf_write(&ibuf->w) == -1) + if (msgbuf_write(&ibuf->w) == -1 && errno != EAGAIN) fatal("msgbuf_write"); } diff --git a/usr.sbin/ldapd/imsgev.c b/usr.sbin/ldapd/imsgev.c index 6b92d794de3..36e9fcbf3aa 100644 --- a/usr.sbin/ldapd/imsgev.c +++ b/usr.sbin/ldapd/imsgev.c @@ -138,7 +138,7 @@ imsgev_dispatch(int fd, short ev, void *humppa) * closed, or some error occured. Both case are not recoverable * from the imsg perspective, so we treat it as a WRITE error. */ - if ((n = msgbuf_write(&ibuf->w)) != 1) { + if ((n = msgbuf_write(&ibuf->w)) != 1 && errno != EAGAIN) { imsgev_disconnect(iev, IMSGEV_EWRITE); return; } |