소스 검색

[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>
Arnaldo Carvalho de Melo 20 년 전
부모
커밋
24117727b7
1개의 변경된 파일3개의 추가작업 그리고 7개의 파일을 삭제
  1. 3 7
      net/dccp/output.c

+ 3 - 7
net/dccp/output.c

@@ -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);