diff options
Diffstat (limited to 'net/ipv4/tcp_ipv4.c')
| -rw-r--r-- | net/ipv4/tcp_ipv4.c | 12 | 
1 files changed, 7 insertions, 5 deletions
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index 0eaf685bddc..77f5050efc8 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c @@ -726,7 +726,7 @@ release_sk1:   */  static void tcp_v4_send_ack(struct sk_buff *skb, u32 seq, u32 ack, -			    u32 win, u32 ts, int oif, +			    u32 win, u32 tsval, u32 tsecr, int oif,  			    struct tcp_md5sig_key *key,  			    int reply_flags, u8 tos)  { @@ -747,12 +747,12 @@ static void tcp_v4_send_ack(struct sk_buff *skb, u32 seq, u32 ack,  	arg.iov[0].iov_base = (unsigned char *)&rep;  	arg.iov[0].iov_len  = sizeof(rep.th); -	if (ts) { +	if (tsecr) {  		rep.opt[0] = htonl((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) |  				   (TCPOPT_TIMESTAMP << 8) |  				   TCPOLEN_TIMESTAMP); -		rep.opt[1] = htonl(tcp_time_stamp); -		rep.opt[2] = htonl(ts); +		rep.opt[1] = htonl(tsval); +		rep.opt[2] = htonl(tsecr);  		arg.iov[0].iov_len += TCPOLEN_TSTAMP_ALIGNED;  	} @@ -767,7 +767,7 @@ static void tcp_v4_send_ack(struct sk_buff *skb, u32 seq, u32 ack,  #ifdef CONFIG_TCP_MD5SIG  	if (key) { -		int offset = (ts) ? 3 : 0; +		int offset = (tsecr) ? 3 : 0;  		rep.opt[offset++] = htonl((TCPOPT_NOP << 24) |  					  (TCPOPT_NOP << 16) | @@ -802,6 +802,7 @@ static void tcp_v4_timewait_ack(struct sock *sk, struct sk_buff *skb)  	tcp_v4_send_ack(skb, tcptw->tw_snd_nxt, tcptw->tw_rcv_nxt,  			tcptw->tw_rcv_wnd >> tw->tw_rcv_wscale, +			tcp_time_stamp + tcptw->tw_ts_offset,  			tcptw->tw_ts_recent,  			tw->tw_bound_dev_if,  			tcp_twsk_md5_key(tcptw), @@ -821,6 +822,7 @@ static void tcp_v4_reqsk_send_ack(struct sock *sk, struct sk_buff *skb,  	tcp_v4_send_ack(skb, (sk->sk_state == TCP_LISTEN) ?  			tcp_rsk(req)->snt_isn + 1 : tcp_sk(sk)->snd_nxt,  			tcp_rsk(req)->rcv_nxt, req->rcv_wnd, +			tcp_time_stamp,  			req->ts_recent,  			0,  			tcp_md5_do_lookup(sk, (union tcp_md5_addr *)&ip_hdr(skb)->daddr,  |