From dd0f967798f8adfebe864b597a0660403041872e Mon Sep 17 00:00:00 2001 From: wangchen Date: Wed, 21 Jun 2023 09:29:37 +0800 Subject: [PATCH] usrsock_server:fix incomplete received data error if number of bytes available for reading more than zero,set USRSOCK_EVENT_RECVFROM_AVAIL flag into the event Signed-off-by: wangchen --- drivers/usrsock/usrsock_rpmsg_server.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/usrsock/usrsock_rpmsg_server.c b/drivers/usrsock/usrsock_rpmsg_server.c index 1ef562b580..ef10e19717 100644 --- a/drivers/usrsock/usrsock_rpmsg_server.c +++ b/drivers/usrsock/usrsock_rpmsg_server.c @@ -578,7 +578,6 @@ static int usrsock_rpmsg_recvfrom_handler(FAR struct rpmsg_endpoint *ept, false); if (!iov[i].iov_base) { - events |= USRSOCK_EVENT_RECVFROM_AVAIL; break; } @@ -607,12 +606,16 @@ static int usrsock_rpmsg_recvfrom_handler(FAR struct rpmsg_endpoint *ept, else { iov[i].iov_len = 0; - events |= USRSOCK_EVENT_RECVFROM_AVAIL; break; } i++; } + + if (usrsock_rpmsg_available(&priv->socks[req->usockid], FIONREAD)) + { + events |= USRSOCK_EVENT_RECVFROM_AVAIL; + } } }