|
@@ -2279,6 +2279,11 @@ struct sk_buff *tcp_make_synack(struct sock *sk, struct dst_entry *dst,
|
|
|
}
|
|
|
|
|
|
memset(&opts, 0, sizeof(opts));
|
|
|
+#ifdef CONFIG_SYN_COOKIES
|
|
|
+ if (unlikely(req->cookie_ts))
|
|
|
+ TCP_SKB_CB(skb)->when = cookie_init_timestamp(req);
|
|
|
+ else
|
|
|
+#endif
|
|
|
TCP_SKB_CB(skb)->when = tcp_time_stamp;
|
|
|
tcp_header_size = tcp_synack_options(sk, req, mss,
|
|
|
skb, &opts, &md5) +
|
|
@@ -2304,11 +2309,6 @@ struct sk_buff *tcp_make_synack(struct sock *sk, struct dst_entry *dst,
|
|
|
|
|
|
/* RFC1323: The window in SYN & SYN/ACK segments is never scaled. */
|
|
|
th->window = htons(min(req->rcv_wnd, 65535U));
|
|
|
-#ifdef CONFIG_SYN_COOKIES
|
|
|
- if (unlikely(req->cookie_ts))
|
|
|
- TCP_SKB_CB(skb)->when = cookie_init_timestamp(req);
|
|
|
- else
|
|
|
-#endif
|
|
|
tcp_options_write((__be32 *)(th + 1), tp, &opts, &md5_hash_location);
|
|
|
th->doff = (tcp_header_size >> 2);
|
|
|
TCP_INC_STATS(sock_net(sk), TCP_MIB_OUTSEGS);
|