浏览代码

[DCCP]: Handle SYNC packets in dccp_rcv_state_process

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>
Arnaldo Carvalho de Melo 20 年之前
父节点
当前提交
2b80230a7f
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6 0
      net/dccp/input.c

+ 6 - 0
net/dccp/input.c

@@ -562,6 +562,12 @@ int dccp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
 		return 0;
 		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) {
 	switch (sk->sk_state) {
 	case DCCP_CLOSED:
 	case DCCP_CLOSED:
 		return 1;
 		return 1;