aboutsummaryrefslogtreecommitdiffstats
path: root/net/dccp/output.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/dccp/output.c')
-rw-r--r--net/dccp/output.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/dccp/output.c b/net/dccp/output.c
index e97584aa4898..b2e17910930d 100644
--- a/net/dccp/output.c
+++ b/net/dccp/output.c
@@ -567,8 +567,10 @@ void dccp_send_close(struct sock *sk, const int active)
567 567
568 /* Reserve space for headers and prepare control bits. */ 568 /* Reserve space for headers and prepare control bits. */
569 skb_reserve(skb, sk->sk_prot->max_header); 569 skb_reserve(skb, sk->sk_prot->max_header);
570 DCCP_SKB_CB(skb)->dccpd_type = dp->dccps_role == DCCP_ROLE_CLIENT ? 570 if (dp->dccps_role == DCCP_ROLE_SERVER && !dp->dccps_server_timewait)
571 DCCP_PKT_CLOSE : DCCP_PKT_CLOSEREQ; 571 DCCP_SKB_CB(skb)->dccpd_type = DCCP_PKT_CLOSEREQ;
572 else
573 DCCP_SKB_CB(skb)->dccpd_type = DCCP_PKT_CLOSE;
572 574
573 if (active) { 575 if (active) {
574 dccp_write_xmit(sk, 1); 576 dccp_write_xmit(sk, 1);