Merge branch 'sii-m15w' into upstream
[pandora-kernel.git] / net / dccp / ipv4.c
index 80d450b..7f56f7e 100644 (file)
@@ -10,7 +10,6 @@
  *     2 of the License, or (at your option) any later version.
  */
 
-#include <linux/config.h>
 #include <linux/dccp.h>
 #include <linux/icmp.h>
 #include <linux/module.h>
@@ -498,15 +497,14 @@ int dccp_v4_conn_request(struct sock *sk, struct sk_buff *skb)
                goto drop;
 
        if (dccp_parse_options(sk, skb))
-               goto drop;
+               goto drop_and_free;
 
        dccp_openreq_init(req, &dp, skb);
 
        ireq = inet_rsk(req);
        ireq->loc_addr = daddr;
        ireq->rmt_addr = saddr;
-       req->rcv_wnd    = 100; /* Fake, option parsing will get the
-                                 right value */
+       req->rcv_wnd    = dccp_feat_default_sequence_window;
        ireq->opt       = NULL;
 
        /* 
@@ -986,16 +984,20 @@ do_time_wait:
 }
 
 static struct inet_connection_sock_af_ops dccp_ipv4_af_ops = {
-       .queue_xmit     = ip_queue_xmit,
-       .send_check     = dccp_v4_send_check,
-       .rebuild_header = inet_sk_rebuild_header,
-       .conn_request   = dccp_v4_conn_request,
-       .syn_recv_sock  = dccp_v4_request_recv_sock,
-       .net_header_len = sizeof(struct iphdr),
-       .setsockopt     = ip_setsockopt,
-       .getsockopt     = ip_getsockopt,
-       .addr2sockaddr  = inet_csk_addr2sockaddr,
-       .sockaddr_len   = sizeof(struct sockaddr_in),
+       .queue_xmit        = ip_queue_xmit,
+       .send_check        = dccp_v4_send_check,
+       .rebuild_header    = inet_sk_rebuild_header,
+       .conn_request      = dccp_v4_conn_request,
+       .syn_recv_sock     = dccp_v4_request_recv_sock,
+       .net_header_len    = sizeof(struct iphdr),
+       .setsockopt        = ip_setsockopt,
+       .getsockopt        = ip_getsockopt,
+       .addr2sockaddr     = inet_csk_addr2sockaddr,
+       .sockaddr_len      = sizeof(struct sockaddr_in),
+#ifdef CONFIG_COMPAT
+       .compat_setsockopt = compat_ip_setsockopt,
+       .compat_getsockopt = compat_ip_getsockopt,
+#endif
 };
 
 static int dccp_v4_init_sock(struct sock *sk)
@@ -1054,6 +1056,10 @@ static struct proto dccp_v4_prot = {
        .obj_size               = sizeof(struct dccp_sock),
        .rsk_prot               = &dccp_request_sock_ops,
        .twsk_prot              = &dccp_timewait_sock_ops,
+#ifdef CONFIG_COMPAT
+       .compat_setsockopt      = compat_dccp_setsockopt,
+       .compat_getsockopt      = compat_dccp_getsockopt,
+#endif
 };
 
 static struct net_protocol dccp_v4_protocol = {
@@ -1063,26 +1069,30 @@ static struct net_protocol dccp_v4_protocol = {
 };
 
 static const struct proto_ops inet_dccp_ops = {
-       .family         = PF_INET,
-       .owner          = THIS_MODULE,
-       .release        = inet_release,
-       .bind           = inet_bind,
-       .connect        = inet_stream_connect,
-       .socketpair     = sock_no_socketpair,
-       .accept         = inet_accept,
-       .getname        = inet_getname,
+       .family            = PF_INET,
+       .owner             = THIS_MODULE,
+       .release           = inet_release,
+       .bind              = inet_bind,
+       .connect           = inet_stream_connect,
+       .socketpair        = sock_no_socketpair,
+       .accept            = inet_accept,
+       .getname           = inet_getname,
        /* FIXME: work on tcp_poll to rename it to inet_csk_poll */
-       .poll           = dccp_poll,
-       .ioctl          = inet_ioctl,
+       .poll              = dccp_poll,
+       .ioctl             = inet_ioctl,
        /* FIXME: work on inet_listen to rename it to sock_common_listen */
-       .listen         = inet_dccp_listen,
-       .shutdown       = inet_shutdown,
-       .setsockopt     = sock_common_setsockopt,
-       .getsockopt     = sock_common_getsockopt,
-       .sendmsg        = inet_sendmsg,
-       .recvmsg        = sock_common_recvmsg,
-       .mmap           = sock_no_mmap,
-       .sendpage       = sock_no_sendpage,
+       .listen            = inet_dccp_listen,
+       .shutdown          = inet_shutdown,
+       .setsockopt        = sock_common_setsockopt,
+       .getsockopt        = sock_common_getsockopt,
+       .sendmsg           = inet_sendmsg,
+       .recvmsg           = sock_common_recvmsg,
+       .mmap              = sock_no_mmap,
+       .sendpage          = sock_no_sendpage,
+#ifdef CONFIG_COMPAT
+       .compat_setsockopt = compat_sock_common_setsockopt,
+       .compat_getsockopt = compat_sock_common_getsockopt,
+#endif
 };
 
 static struct inet_protosw dccp_v4_protosw = {