On Fri, 19 Nov 2004, Alan Cox wrote:
Looks right to me, the ECONNRESET is no longer being lost.
Ok, here is a relative patch for Dave.
Please apply.
Signed-off-by: James Morris <redacted>
---
diff -purN -X dontdiff linux-2.6.10-rc2.w2/net/unix/af_unix.c linux-2.6.10-rc2.w3/net/unix/af_unix.c
--- linux-2.6.10-rc2.w2/net/unix/af_unix.c 2004-11-18 12:09:44.000000000 -0500
+++ linux-2.6.10-rc2.w3/net/unix/af_unix.c 2004-11-18 21:54:12.000000000 -0500
@@ -1513,13 +1513,18 @@ out_err:
static int unix_seqpacket_sendmsg(struct kiocb *kiocb, struct socket *sock,
struct msghdr *msg, size_t len)
{
+ int err;
struct sock *sk = sock->sk;
+ err = sock_error(sk);
+ if (err)
+ return err;
+
if (sk->sk_state != TCP_ESTABLISHED)
return -ENOTCONN;
- if (msg->msg_name || msg->msg_namelen)
- return -EINVAL;
+ if (msg->msg_namelen)
+ msg->msg_namelen = 0;
return unix_dgram_sendmsg(kiocb, sock, msg, len);
}