diff options
Diffstat (limited to 'net/ipv4/tcp_input.c')
| -rw-r--r-- | net/ipv4/tcp_input.c | 36 | 
1 files changed, 7 insertions, 29 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 39c393cc0fd3..bb09c7095988 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -6324,36 +6324,14 @@ int tcp_conn_request(struct request_sock_ops *rsk_ops,  		goto drop_and_free;  	if (isn && tmp_opt.tstamp_ok) -		af_ops->init_seq(skb, &tcp_rsk(req)->ts_off); +		af_ops->init_seq_tsoff(skb, &tcp_rsk(req)->ts_off);  	if (!want_cookie && !isn) { -		/* VJ's idea. We save last timestamp seen -		 * from the destination in peer table, when entering -		 * state TIME-WAIT, and check against it before -		 * accepting new connection request. -		 * -		 * If "isn" is not zero, this request hit alive -		 * timewait bucket, so that all the necessary checks -		 * are made in the function processing timewait state. -		 */ -		if (net->ipv4.tcp_death_row.sysctl_tw_recycle) { -			bool strict; - -			dst = af_ops->route_req(sk, &fl, req, &strict); - -			if (dst && strict && -			    !tcp_peer_is_proven(req, dst, true, -						tmp_opt.saw_tstamp)) { -				NET_INC_STATS(sock_net(sk), LINUX_MIB_PAWSPASSIVEREJECTED); -				goto drop_and_release; -			} -		}  		/* Kill the following clause, if you dislike this way. */ -		else if (!net->ipv4.sysctl_tcp_syncookies && -			 (net->ipv4.sysctl_max_syn_backlog - inet_csk_reqsk_queue_len(sk) < -			  (net->ipv4.sysctl_max_syn_backlog >> 2)) && -			 !tcp_peer_is_proven(req, dst, false, -					     tmp_opt.saw_tstamp)) { +		if (!net->ipv4.sysctl_tcp_syncookies && +		    (net->ipv4.sysctl_max_syn_backlog - inet_csk_reqsk_queue_len(sk) < +		     (net->ipv4.sysctl_max_syn_backlog >> 2)) && +		    !tcp_peer_is_proven(req, dst)) {  			/* Without syncookies last quarter of  			 * backlog is filled with destinations,  			 * proven to be alive. @@ -6366,10 +6344,10 @@ int tcp_conn_request(struct request_sock_ops *rsk_ops,  			goto drop_and_release;  		} -		isn = af_ops->init_seq(skb, &tcp_rsk(req)->ts_off); +		isn = af_ops->init_seq_tsoff(skb, &tcp_rsk(req)->ts_off);  	}  	if (!dst) { -		dst = af_ops->route_req(sk, &fl, req, NULL); +		dst = af_ops->route_req(sk, &fl, req);  		if (!dst)  			goto drop_and_free;  	}  | 
