On Tue, Feb 28, 2023 at 04:36:22PM -0500, Michael S. Tsirkin wrote:
On Tue, Feb 28, 2023 at 07:04:34PM +0000, Bobby Eshleman wrote:
> @@ -1241,19 +1252,34 @@ static int vsock_dgram_connect(struct socket *sock,
>
> memcpy(&vsk->remote_addr, remote_addr, sizeof(vsk->remote_addr));
> sock->state = SS_CONNECTED;
> + sk->sk_state = TCP_ESTABLISHED;
>
> out:
> release_sock(sk);
> return err;
> }
How is this related? Maybe add a comment to explain? Does
TCP_ESTABLISHED make sense for all types of sockets?
Hey Michael, definitely, I can leave a comment.
The real reason is due to this piece of logic in sockmap:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/net/core/sock_map.c?h=v6.2#n531
And because of it, you see the same thing in (for example)
unix_dgram_connect():
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/net/unix/af_unix.c?h=v6.2#n1394
I believe it makes sense for these other socket types.