Download raw body.
relayd: log errors before dropping a control connection
The control dispatcher silently closed the client connection when
imsgbuf_write or imsgbuf_get failed. A relayctl user then saw the
command break with no hint why, and nothing in the server log if we want
to debug it.
OK?
diff --git a/control.c b/control.c
index fb64608..5cff2c8 100644
--- a/control.c
+++ b/control.c
@@ -250,6 +250,8 @@ control_dispatch_imsg(int fd, short event, void *arg)
if (event & EV_WRITE) {
if (imsgbuf_write(&c->iev.ibuf) == -1) {
+ log_debug("%s: imsgbuf_write: %s", __func__,
+ strerror(errno));
control_close(fd, cs);
return;
}
@@ -257,6 +259,7 @@ control_dispatch_imsg(int fd, short event, void *arg)
for (;;) {
if ((n = imsgbuf_get(&c->iev.ibuf, &imsg)) == -1) {
+ log_debug("%s: imsgbuf_get", __func__);
control_close(fd, cs);
return;
}
relayd: log errors before dropping a control connection