From 5a4bb4472ab98b401a2f0d3a09bac52fbeb9c297 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Wed, 25 Sep 2024 10:39:43 +0200 Subject: [PATCH] daemon/session2: avoid incorrectly generated errors The _try_ functions additionally return positive values on success, and the code around didn't deal with that. So far there's no evidence that this caused any issues beyond debug-logs: [prlayr] ... iteration of group ... ended with status 'Unknown error ... --- daemon/session2.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/daemon/session2.c b/daemon/session2.c index 0be121fae..91aeb8295 100644 --- a/daemon/session2.c +++ b/daemon/session2.c @@ -1449,6 +1449,8 @@ static int session2_transport_pushv(struct session2 *s, } else { int ret = uv_udp_try_send((uv_udp_t*)handle, (uv_buf_t *)iov, iovcnt, comm->comm_addr); + if (ret > 0) // equals buffer size, only confuses us + ret = 0; if (ret == UV_EAGAIN) { ret = kr_error(ENOBUFS); session2_event(s, PROTOLAYER_EVENT_OS_BUFFER_FULL, NULL); @@ -1480,6 +1482,8 @@ static int session2_transport_pushv(struct session2 *s, ret = kr_error(ENOBUFS); session2_event(s, PROTOLAYER_EVENT_OS_BUFFER_FULL, NULL); } + else if (ret > 0) // iovec_sum was checked, let's not get confused anymore + ret = 0; if (false && ret == UV_EAGAIN) { uv_write_t *req = malloc(sizeof(*req)); -- 2.47.2