aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich <45179-rotap@users.noreply.gitlab.freedesktop.org>2022-03-04 18:17:35 +0000
committerRich <45179-rotap@users.noreply.gitlab.freedesktop.org>2022-03-04 18:17:35 +0000
commit55d498cbe3f6393d04a5c4e607b34b7d49ffba8c (patch)
treea3bd3b5d8446bf4bb39c190830e290810d6b2cb4
parent804110bc5c5d1b777313057f84a9b68bb5b2f448 (diff)
downloadslirp-55d498cbe3f6393d04a5c4e607b34b7d49ffba8c.zip
slirp-55d498cbe3f6393d04a5c4e607b34b7d49ffba8c.tar.gz
slirp-55d498cbe3f6393d04a5c4e607b34b7d49ffba8c.tar.bz2
socket: Handle ECONNABORTED from recv
recv can return ECONNABORTED due to a time-out on the socket. The socket is no longer useable once it enters this state.
-rw-r--r--src/socket.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/socket.c b/src/socket.c
index b70d727..6a3ddb1 100644
--- a/src/socket.c
+++ b/src/socket.c
@@ -217,8 +217,8 @@ int soread(struct socket *so)
errno, strerror(errno));
sofcantrcvmore(so);
- if (err == ECONNRESET || err == ECONNREFUSED || err == ENOTCONN ||
- err == EPIPE) {
+ if (err == ECONNABORTED || err == ECONNRESET || err == ECONNREFUSED ||
+ err == ENOTCONN || err == EPIPE) {
tcp_drop(sototcpcb(so), err);
} else {
tcp_sockclosed(sototcpcb(so));