[DCCP]: Fix ackno setting in SYNC/SYNCACK packets
authorArnaldo Carvalho de Melo <acme@mandriva.com>
Sun, 21 Aug 2005 08:40:16 +0000 (05:40 -0300)
committerDavid S. Miller <davem@sunset.davemloft.net>
Mon, 29 Aug 2005 23:03:52 +0000 (16:03 -0700)
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dccp/output.c

index 384fd09209839d5963d318c7145fb0d2182d85df..708fc3c0a969205d59dbf0d11e9ec757d0f4e95e 100644 (file)
@@ -44,15 +44,8 @@ int dccp_transmit_skb(struct sock *sk, struct sk_buff *skb)
                int err, set_ack = 1;
                u64 ackno = dp->dccps_gsr;
 
-               /*
-                * FIXME: study DCCP_PKT_SYNC[ACK] to see what is the right
-                * thing to do here...
-                */
                dccp_inc_seqno(&dp->dccps_gss);
 
-               dcb->dccpd_seq = dp->dccps_gss;
-               dccp_insert_options(sk, skb);
-
                switch (dcb->dccpd_type) {
                case DCCP_PKT_DATA:
                        set_ack = 0;
@@ -62,6 +55,9 @@ int dccp_transmit_skb(struct sock *sk, struct sk_buff *skb)
                        ackno = dcb->dccpd_seq;
                        break;
                }
+
+               dcb->dccpd_seq = dp->dccps_gss;
+               dccp_insert_options(sk, skb);
                
                skb->h.raw = skb_push(skb, dccp_header_size);
                dh = dccp_hdr(skb);