forked from mirrors/linux
		
	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
	
	 Pavel Emelyanov
						Pavel Emelyanov