aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/net/socket_linux.odin4
1 files changed, 3 insertions, 1 deletions
diff --git a/core/net/socket_linux.odin b/core/net/socket_linux.odin
index d9b29fb3a..ee3a41927 100644
--- a/core/net/socket_linux.odin
+++ b/core/net/socket_linux.odin
@@ -260,7 +260,9 @@ _send_tcp :: proc(tcp_sock: TCP_Socket, buf: []byte) -> (int, Network_Error) {
remaining := buf[total_written:][:limit]
res, errno := linux.send(linux.Fd(tcp_sock), remaining, {.NOSIGNAL})
if errno == .EPIPE {
- return total_written, TCP_Send_Error.Connection_Closed
+ // If the peer is disconnected when we are trying to send we will get an `EPIPE` error,
+ // so we turn that into a clearer error
+ return total_written, .Connection_Closed
} else if errno != .NONE {
return total_written, TCP_Send_Error(errno)
}