aboutsummaryrefslogtreecommitdiffstats
path: root/net/dccp/output.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@mandriva.com>2005-08-17 02:10:59 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2005-08-29 19:01:50 -0400
commite92ae93a8aa66aea12935420cb22d4df1c18d023 (patch)
tree61ffc292a8e437f7d44bbfe00c4e052f7488dd25 /net/dccp/output.c
parentba602a816132dcc66e875dddf2c62512a9f6f8cb (diff)
[DCCP]: Send SYNCACK packets in response to SYNC packets
Also fix step 6 when receiving SYNC or SYNCACK packets, i.e. we were not using the updated swl. Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dccp/output.c')
-rw-r--r--net/dccp/output.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/net/dccp/output.c b/net/dccp/output.c
index dcc061bed924..384fd0920983 100644
--- a/net/dccp/output.c
+++ b/net/dccp/output.c
@@ -404,7 +404,8 @@ void dccp_send_delayed_ack(struct sock *sk)
404 sk_reset_timer(sk, &icsk->icsk_delack_timer, timeout); 404 sk_reset_timer(sk, &icsk->icsk_delack_timer, timeout);
405} 405}
406 406
407void dccp_send_sync(struct sock *sk, u64 seq) 407void dccp_send_sync(struct sock *sk, const u64 seq,
408 const enum dccp_pkt_type pkt_type)
408{ 409{
409 /* 410 /*
410 * We are not putting this on the write queue, so 411 * We are not putting this on the write queue, so
@@ -420,7 +421,7 @@ void dccp_send_sync(struct sock *sk, u64 seq)
420 /* Reserve space for headers and prepare control bits. */ 421 /* Reserve space for headers and prepare control bits. */
421 skb_reserve(skb, MAX_DCCP_HEADER); 422 skb_reserve(skb, MAX_DCCP_HEADER);
422 skb->csum = 0; 423 skb->csum = 0;
423 DCCP_SKB_CB(skb)->dccpd_type = DCCP_PKT_SYNC; 424 DCCP_SKB_CB(skb)->dccpd_type = pkt_type;
424 DCCP_SKB_CB(skb)->dccpd_seq = seq; 425 DCCP_SKB_CB(skb)->dccpd_seq = seq;
425 426
426 skb_set_owner_w(skb, sk); 427 skb_set_owner_w(skb, sk);