瀏覽代碼

[TCPDIAG]: Introduce CONFIG_IP_TCPDIAG_DCCP

Similar to CONFIG_IP_TCPDIAG_IPV6

Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Arnaldo Carvalho de Melo 20 年之前
父節點
當前提交
e41aac41e3
共有 2 個文件被更改,包括 10 次插入7 次删除
  1. 6 3
      net/ipv4/Kconfig
  2. 4 4
      net/ipv4/tcp_diag.c

+ 6 - 3
net/ipv4/Kconfig

@@ -419,15 +419,18 @@ config IP_TCPDIAG
 	---help---
 	---help---
 	  Support for TCP socket monitoring interface used by native Linux
 	  Support for TCP socket monitoring interface used by native Linux
 	  tools such as ss. ss is included in iproute2, currently downloadable
 	  tools such as ss. ss is included in iproute2, currently downloadable
-	  at <http://developer.osdl.org/dev/iproute2>. If you want IPv6 support
-	  and have selected IPv6 as a module, you need to build this as a
-	  module too.
+	  at <http://developer.osdl.org/dev/iproute2>. If you want IPv6 or DCCP
+	  support and have selected IPv6 or DCCP as a module, you need to build
+	  this as a module too.
 	  
 	  
 	  If unsure, say Y.
 	  If unsure, say Y.
 
 
 config IP_TCPDIAG_IPV6
 config IP_TCPDIAG_IPV6
 	def_bool (IP_TCPDIAG=y && IPV6=y) || (IP_TCPDIAG=m && IPV6)
 	def_bool (IP_TCPDIAG=y && IPV6=y) || (IP_TCPDIAG=m && IPV6)
 
 
+config IP_TCPDIAG_DCCP
+	def_bool (IP_TCPDIAG=y && IP_DCCP=y) || (IP_TCPDIAG=m && IP_DCCP)
+
 config TCP_CONG_ADVANCED
 config TCP_CONG_ADVANCED
 	bool "TCP: advanced congestion control"
 	bool "TCP: advanced congestion control"
 	---help---
 	---help---

+ 4 - 4
net/ipv4/tcp_diag.c

@@ -45,7 +45,7 @@ static struct sock *tcpnl;
 #define TCPDIAG_PUT(skb, attrtype, attrlen) \
 #define TCPDIAG_PUT(skb, attrtype, attrlen) \
 	RTA_DATA(__RTA_PUT(skb, attrtype, attrlen))
 	RTA_DATA(__RTA_PUT(skb, attrtype, attrlen))
 
 
-#if defined(CONFIG_IP_DCCP) || defined(CONFIG_IP_DCCP_MODULE)
+#ifdef CONFIG_IP_TCPDIAG_DCCP
 extern struct inet_hashinfo dccp_hashinfo;
 extern struct inet_hashinfo dccp_hashinfo;
 #endif
 #endif
 
 
@@ -216,7 +216,7 @@ static int tcpdiag_get_exact(struct sk_buff *in_skb, const struct nlmsghdr *nlh)
 	struct tcpdiagreq *req = NLMSG_DATA(nlh);
 	struct tcpdiagreq *req = NLMSG_DATA(nlh);
 	struct sk_buff *rep;
 	struct sk_buff *rep;
 	struct inet_hashinfo *hashinfo = &tcp_hashinfo;
 	struct inet_hashinfo *hashinfo = &tcp_hashinfo;
-#if defined(CONFIG_IP_DCCP) || defined(CONFIG_IP_DCCP_MODULE)
+#ifdef CONFIG_IP_TCPDIAG_DCCP
 	if (nlh->nlmsg_type == DCCPDIAG_GETSOCK)
 	if (nlh->nlmsg_type == DCCPDIAG_GETSOCK)
 		hashinfo = &dccp_hashinfo;
 		hashinfo = &dccp_hashinfo;
 #endif
 #endif
@@ -614,7 +614,7 @@ static int tcpdiag_dump(struct sk_buff *skb, struct netlink_callback *cb)
 	s_i = cb->args[1];
 	s_i = cb->args[1];
 	s_num = num = cb->args[2];
 	s_num = num = cb->args[2];
 		hashinfo = &tcp_hashinfo;
 		hashinfo = &tcp_hashinfo;
-#if defined(CONFIG_IP_DCCP) || defined(CONFIG_IP_DCCP_MODULE)
+#ifdef CONFIG_IP_TCPDIAG_DCCP
 	if (cb->nlh->nlmsg_type == DCCPDIAG_GETSOCK)
 	if (cb->nlh->nlmsg_type == DCCPDIAG_GETSOCK)
 		hashinfo = &dccp_hashinfo;
 		hashinfo = &dccp_hashinfo;
 #endif
 #endif
@@ -752,7 +752,7 @@ tcpdiag_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
 		return 0;
 		return 0;
 
 
 	if (nlh->nlmsg_type != TCPDIAG_GETSOCK
 	if (nlh->nlmsg_type != TCPDIAG_GETSOCK
-#if defined(CONFIG_IP_DCCP) || defined(CONFIG_IP_DCCP_MODULE)
+#ifdef CONFIG_IP_TCPDIAG_DCCP
 	    && nlh->nlmsg_type != DCCPDIAG_GETSOCK
 	    && nlh->nlmsg_type != DCCPDIAG_GETSOCK
 #endif
 #endif
 	   )
 	   )