--- xt_socket.c	2011-03-24 10:44:56.917401610 +0100
+++ /free/linux-2.6.32-71.el6/net/netfilter/xt_socket.c	2011-02-15 09:52:39.313255248 +0100
@@ -10,7 +10,6 @@
  *
  */
 
-#include "xt_tproxy_sctp.h"
 #include <linux/module.h>
 #include <linux/skbuff.h>
 #include <linux/netfilter/x_tables.h>
@@ -18,13 +17,12 @@
 #include <net/tcp.h>
 #include <net/udp.h>
 #include <net/icmp.h>
-#include <net/sctp/sctp.h>
+#include <net/sctp.h>
 #include <net/sock.h>
 #include <net/inet_sock.h>
 #include <net/netfilter/nf_tproxy_core.h>
-#include "nf_defrag_ipv4.h"
+#include <net/netfilter/ipv4/nf_defrag_ipv4.h>
 
-#include "xt_sctp.h" 
 #include <linux/netfilter/xt_socket.h>
 
 #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
@@ -68,8 +66,7 @@
 		return 1;
 
 	if (inside_iph->protocol != IPPROTO_TCP &&
-	    inside_iph->protocol != IPPROTO_UDP && 
-	    inside_iph->protocol != IPPROTO_SCTP)
+	    inside_iph->protocol != IPPROTO_UDP)
 		return 1;
 
 	ports = skb_header_pointer(skb, outside_hdrlen +
@@ -97,7 +94,7 @@
 {
 	const struct iphdr *iph = ip_hdr(skb);
 	struct udphdr _hdr, *hp = NULL;
-	struct sock *sk = NULL;
+	struct sock *sk;
 	__be32 daddr, saddr;
 	__be16 dport, sport;
 	u8 protocol;
@@ -106,13 +103,7 @@
 	enum ip_conntrack_info ctinfo;
 #endif
 
-	/* sctp stuff */
-	struct sctp_association *asoc = NULL;
-        struct sctp_transport *transport;
-        struct sctphdr *sh;
-        union sctp_addr laddr;
-
-	if (iph->protocol == IPPROTO_UDP || iph->protocol == IPPROTO_TCP || iph->protocol == IPPROTO_SCTP) {
+	if (iph->protocol == IPPROTO_UDP || iph->protocol == IPPROTO_TCP) {
 		hp = skb_header_pointer(skb, ip_hdrlen(skb),
 					sizeof(_hdr), &_hdr);
 		if (hp == NULL)
@@ -150,42 +141,9 @@
 			ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.u.udp.port;
 	}
 #endif
-	if(iph->protocol == IPPROTO_TCP || iph->protocol == IPPROTO_UDP){
+
 	sk = nf_tproxy_get_sock_v4(dev_net(skb->dev), protocol,
 				   saddr, daddr, sport, dport, par->in, false);
-	}
-	
-	else
-		if(iph->protocol == IPPROTO_SCTP){
-
-		 printk(KERN_INFO "Inside sctp part");
-
-         	sh = (struct sctphdr *)skb_transport_header(skb);
-
-                printk(KERN_INFO "sctp header success");
-                laddr.v4.sin_addr.s_addr = (daddr) ;
-                laddr.v4.sin_port = htons(dport);
-                laddr.v4.sin_family = AF_INET;
-
-                printk(KERN_INFO "%dladdr.v4.sin_addr.s_addr %d laddr.v4.sin_port ",laddr.v4.sin_addr.s_addr,laddr.v4.sin_port);
-                printk(KERN_INFO "before lookup");
-                asoc = __sctp_rcv_lookup_harder(skb, &laddr, &transport);
-                printk(KERN_INFO "after lookup");
-
-                if(!asoc){
-
-                printk(KERN_INFO "asoc null");
-                sk = NULL;
-                }
-
-                else{
-
-                printk(KERN_INFO "after asoc not null ");
-
-                sk = asoc->base.sk;
-                }
-
-                }
 	if (sk != NULL) {
 		bool wildcard;
 		bool transparent = true;
