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: Pavel Emelyanov <xemul@parallels.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
5a85d716ab
commit
e4e541a848
4 changed files with 9 additions and 1 deletions
|
@ -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 */
|
||||
|
|
|
@ -37,6 +37,7 @@ enum {
|
|||
UNIX_DIAG_ICONS,
|
||||
UNIX_DIAG_RQLEN,
|
||||
UNIX_DIAG_MEMINFO,
|
||||
UNIX_DIAG_SHUTDOWN,
|
||||
|
||||
UNIX_DIAG_MAX,
|
||||
};
|
||||
|
|
|
@ -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.
|
||||
*/
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in a new issue