From f8b0ea53dcf2a04ca847aa6cbf4683eed98a3321 Mon Sep 17 00:00:00 2001 From: Lasse Dalegaard Date: Sat, 27 Feb 2021 10:56:14 +0000 Subject: [PATCH] serialqueue: correctly report EOF errors If `klippy` loses connection to a device, the next `read()` from the device file descriptor will result in a zero-byte result, i.e. an `EOF`. Right now this gives a confusing error message, so this simply handles the special case of `EOF` and outputs a better log message. Signed-off-by: Lasse Dalegaard --- klippy/chelper/serialqueue.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/klippy/chelper/serialqueue.c b/klippy/chelper/serialqueue.c index f9cfd148..3684a721 100644 --- a/klippy/chelper/serialqueue.c +++ b/klippy/chelper/serialqueue.c @@ -573,7 +573,10 @@ input_event(struct serialqueue *sq, double eventtime) int ret = read(sq->serial_fd, &sq->input_buf[sq->input_pos] , sizeof(sq->input_buf) - sq->input_pos); if (ret <= 0) { - report_errno("read", ret); + if(ret < 0) + report_errno("read", ret); + else + errorf("Got EOF when reading from device"); pollreactor_do_exit(&sq->pr); return; }