]> err.no Git - linux-2.6/commitdiff
[DCCP]: Handle SYNC packets in dccp_rcv_state_process
authorArnaldo Carvalho de Melo <acme@mandriva.com>
Tue, 13 Sep 2005 22:05:08 +0000 (19:05 -0300)
committerArnaldo Carvalho de Melo <acme@mandriva.com>
Tue, 13 Sep 2005 22:05:08 +0000 (19:05 -0300)
Eliciting a SYNCACK in response, we were handling SYNC packets
only in the DCCP_OPEN state, in dccp_rcv_established.

Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
net/dccp/input.c

index f01d588299c888ba2785dc91bf92dd3a72154ba3..c74034cf7ede15e34390531a549c4a7ce1048193 100644 (file)
@@ -562,6 +562,12 @@ int dccp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
                return 0;
        }
 
+       if (unlikely(dh->dccph_type == DCCP_PKT_SYNC)) {
+               dccp_send_sync(sk, DCCP_SKB_CB(skb)->dccpd_seq,
+                              DCCP_PKT_SYNCACK);
+               goto discard;
+       }
+
        switch (sk->sk_state) {
        case DCCP_CLOSED:
                return 1;