Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e4e541a8 authored by Pavel Emelyanov's avatar Pavel Emelyanov Committed by David S. Miller
Browse files

sock-diag: Report shutdown for inet and unix sockets (v2)



Make it simple -- just put new nlattr with just sk->sk_shutdown bits.

Signed-off-by: default avatarPavel Emelyanov <xemul@parallels.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 5a85d716
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -109,9 +109,10 @@ enum {
	INET_DIAG_TOS,
	INET_DIAG_TCLASS,
	INET_DIAG_SKMEMINFO,
	INET_DIAG_SHUTDOWN,
};

#define INET_DIAG_MAX INET_DIAG_SKMEMINFO
#define INET_DIAG_MAX INET_DIAG_SHUTDOWN


/* INET_DIAG_MEM */
+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ enum {
	UNIX_DIAG_ICONS,
	UNIX_DIAG_RQLEN,
	UNIX_DIAG_MEMINFO,
	UNIX_DIAG_SHUTDOWN,

	UNIX_DIAG_MAX,
};
+3 −0
Original line number Diff line number Diff line
@@ -105,6 +105,9 @@ int inet_sk_diag_fill(struct sock *sk, struct inet_connection_sock *icsk,
	r->id.idiag_src[0] = inet->inet_rcv_saddr;
	r->id.idiag_dst[0] = inet->inet_daddr;

	if (nla_put_u8(skb, INET_DIAG_SHUTDOWN, sk->sk_shutdown))
		goto errout;

	/* IPv6 dual-stack sockets use inet->tos for IPv4 connections,
	 * hence this needs to be included regardless of socket family.
	 */
+3 −0
Original line number Diff line number Diff line
@@ -151,6 +151,9 @@ static int sk_diag_fill(struct sock *sk, struct sk_buff *skb, struct unix_diag_r
	    sock_diag_put_meminfo(sk, skb, UNIX_DIAG_MEMINFO))
		goto out_nlmsg_trim;

	if (nla_put_u8(skb, UNIX_DIAG_SHUTDOWN, sk->sk_shutdown))
		goto out_nlmsg_trim;

	return nlmsg_end(skb, nlh);

out_nlmsg_trim: