net/usrsock: read from the closed remote should return EOF
fix usrsock remote_disconnect fail:
nsh> usrsocktest
...
Testing group "remote_disconnect" =>
[TEST ASSERT FAILED!]
In function "receive":
line 497: Assertion `(ssize_t)((ret)) == (ssize_t)((0))' failed.
got value: -1
should be: 0
Group "remote_disconnect": [FAILED]
...
Reference:
RECV(2)
NAME
recv, recvfrom, recvmsg - receive a message from a socket
...
RETURN VALUE
...
When a stream socket peer has performed an orderly shutdown,
the return value will be 0 (the traditional "end-of-file" return).
Datagram sockets in various domains (e.g., the UNIX and Internet domains)
permit zero-length datagrams. When such a datagram is received, the return value is 0.
Signed-off-by: chao an <anchao@xiaomi.com>
This commit is contained in:
parent
fe7badf2ac
commit
3a653c1d5e
1 changed files with 6 additions and 0 deletions
|
|
@ -442,6 +442,12 @@ errout_unlock:
|
|||
*fromlen = outaddrlen;
|
||||
}
|
||||
|
||||
if (conn->flags & USRSOCK_EVENT_REMOTE_CLOSED &&
|
||||
ret == -ENOTCONN)
|
||||
{
|
||||
ret = OK;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue