aboutsummaryrefslogtreecommitdiffstats
path: root/net/dccp
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@mandriva.com>2005-08-21 04:40:16 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2005-08-29 19:03:52 -0400
commit24117727b753426d85ba09671c24854834f81b2c (patch)
tree3a72f0f6e92bec1db7cd4431fc04f454ac1d4569 /net/dccp
parent03ace394ac9bcad38043a381ae5f4860b9c9fa1c (diff)
[DCCP]: Fix ackno setting in SYNC/SYNCACK packets
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dccp')
-rw-r--r--net/dccp/output.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/net/dccp/output.c b/net/dccp/output.c
index 384fd0920983..708fc3c0a969 100644
--- a/net/dccp/output.c
+++ b/net/dccp/output.c
@@ -44,15 +44,8 @@ int dccp_transmit_skb(struct sock *sk, struct sk_buff *skb)
44 int err, set_ack = 1; 44 int err, set_ack = 1;
45 u64 ackno = dp->dccps_gsr; 45 u64 ackno = dp->dccps_gsr;
46 46
47 /*
48 * FIXME: study DCCP_PKT_SYNC[ACK] to see what is the right
49 * thing to do here...
50 */
51 dccp_inc_seqno(&dp->dccps_gss); 47 dccp_inc_seqno(&dp->dccps_gss);
52 48
53 dcb->dccpd_seq = dp->dccps_gss;
54 dccp_insert_options(sk, skb);
55
56 switch (dcb->dccpd_type) { 49 switch (dcb->dccpd_type) {
57 case DCCP_PKT_DATA: 50 case DCCP_PKT_DATA:
58 set_ack = 0; 51 set_ack = 0;
@@ -62,6 +55,9 @@ int dccp_transmit_skb(struct sock *sk, struct sk_buff *skb)
62 ackno = dcb->dccpd_seq; 55 ackno = dcb->dccpd_seq;
63 break; 56 break;
64 } 57 }
58
59 dcb->dccpd_seq = dp->dccps_gss;
60 dccp_insert_options(sk, skb);
65 61
66 skb->h.raw = skb_push(skb, dccp_header_size); 62 skb->h.raw = skb_push(skb, dccp_header_size);
67 dh = dccp_hdr(skb); 63 dh = dccp_hdr(skb);