commit - e7965818e16df6d5a47fdfeb7753c447c80677a9
commit + 7ab7287f2568cf0384497707d95581957ec29e56
blob - 62ee3f233848926a8339815fd7b77d6040821c55
blob + 5c4ddf7a18b062babdc0a2473f7c73053daf77cc
--- control.c
+++ control.c
-/* $OpenBSD: control.c,v 1.16 2024/11/21 13:10:36 claudio Exp $ */
+/* $OpenBSD: control.c,v 1.17 2024/11/21 13:16:07 claudio Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
}
if (event & EV_WRITE) {
- if (imsg_write(&c->iev.ibuf) <= 0 && errno != EAGAIN) {
+ if (imsg_write(&c->iev.ibuf) == -1) {
control_close(fd, cs);
return;
}
blob - 7bd184c784154ee1cdc85b0c0ded523f866e4652
blob + 49fc73e7f63830434cab260f509615c20f7d659e
--- proc.c
+++ proc.c
-/* $OpenBSD: proc.c,v 1.47 2024/11/21 13:10:36 claudio Exp $ */
+/* $OpenBSD: proc.c,v 1.48 2024/11/21 13:16:07 claudio Exp $ */
/*
* Copyright (c) 2010 - 2016 Reyk Floeter <reyk@openbsd.org>
}
if (event & EV_WRITE) {
- if ((n = imsg_write(ibuf)) == -1 && errno != EAGAIN)
- fatal("%s: imsg_write", __func__);
- if (n == 0) {
- /* this pipe is dead, so remove the event handler */
- event_del(&iev->ev);
- event_loopexit(NULL);
- return;
+ if (imsg_write(ibuf) == -1) {
+ if (errno == EPIPE) { /* connection closed */
+ /* remove the event handler */
+ event_del(&iev->ev);
+ event_loopexit(NULL);
+ return;
+ } else
+ fatal("%s: imsg_write", __func__);
}
}