From 81bbd98d8bfe454b69ca349331382ffe9e531dff Mon Sep 17 00:00:00 2001 From: babarosaM33 Date: Sat, 8 Feb 2020 17:55:07 +0800 Subject: [PATCH] udprelay: exclude udp remote_recv_sendto buff full before: udp send buff full would not reset timeout trigger after: fix it --- src/udprelay.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/udprelay.c b/src/udprelay.c index db4d5169..03c1f6b3 100644 --- a/src/udprelay.c +++ b/src/udprelay.c @@ -880,7 +880,7 @@ remote_recv_cb(EV_P_ ev_io *w, int revents) int s = sendto(src_fd, buf->data, buf->len, 0, (struct sockaddr *)&remote_ctx->src_addr, remote_src_addr_len); - if (s == -1) { + if (s == -1 && !(errno == EAGAIN || errno == EWOULDBLOCK)) { ERROR("[udp] remote_recv_sendto"); close(src_fd); goto CLEAN_UP; @@ -891,7 +891,7 @@ remote_recv_cb(EV_P_ ev_io *w, int revents) int s = sendto(server_ctx->fd, buf->data, buf->len, 0, (struct sockaddr *)&remote_ctx->src_addr, remote_src_addr_len); - if (s == -1) { + if (s == -1 && !(errno == EAGAIN || errno == EWOULDBLOCK)) { ERROR("[udp] remote_recv_sendto"); goto CLEAN_UP; }