syncookies.c (9b09342f5cfa5b4b3447de17de284111bfdeab26) | syncookies.c (ceef9ab6be7234f9e49f79769e0da88d1dccfcc7) |
---|---|
1/* 2 * Syncookies implementation for the Linux kernel 3 * 4 * Copyright (C) 1997 Andi Kleen 5 * Based on ideas by D.J.Bernstein and Eric Schenk. 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License --- 371 unchanged lines hidden (view full) --- 380 if (IS_ERR(rt)) { 381 reqsk_free(req); 382 goto out; 383 } 384 385 /* Try to redo what tcp_v4_send_synack did. */ 386 req->rsk_window_clamp = tp->window_clamp ? :dst_metric(&rt->dst, RTAX_WINDOW); 387 | 1/* 2 * Syncookies implementation for the Linux kernel 3 * 4 * Copyright (C) 1997 Andi Kleen 5 * Based on ideas by D.J.Bernstein and Eric Schenk. 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License --- 371 unchanged lines hidden (view full) --- 380 if (IS_ERR(rt)) { 381 reqsk_free(req); 382 goto out; 383 } 384 385 /* Try to redo what tcp_v4_send_synack did. */ 386 req->rsk_window_clamp = tp->window_clamp ? :dst_metric(&rt->dst, RTAX_WINDOW); 387 |
388 tcp_select_initial_window(tcp_full_space(sk), req->mss, | 388 tcp_select_initial_window(sk, tcp_full_space(sk), req->mss, |
389 &req->rsk_rcv_wnd, &req->rsk_window_clamp, 390 ireq->wscale_ok, &rcv_wscale, 391 dst_metric(&rt->dst, RTAX_INITRWND)); 392 393 ireq->rcv_wscale = rcv_wscale; 394 ireq->ecn_ok = cookie_ecn_ok(&tcp_opt, sock_net(sk), &rt->dst); 395 396 ret = tcp_get_cookie_sock(sk, skb, req, &rt->dst, tsoff); 397 /* ip_queue_xmit() depends on our flow being setup 398 * Normal sockets get it right from inet_csk_route_child_sock() 399 */ 400 if (ret) 401 inet_sk(ret)->cork.fl.u.ip4 = fl4; 402out: return ret; 403} | 389 &req->rsk_rcv_wnd, &req->rsk_window_clamp, 390 ireq->wscale_ok, &rcv_wscale, 391 dst_metric(&rt->dst, RTAX_INITRWND)); 392 393 ireq->rcv_wscale = rcv_wscale; 394 ireq->ecn_ok = cookie_ecn_ok(&tcp_opt, sock_net(sk), &rt->dst); 395 396 ret = tcp_get_cookie_sock(sk, skb, req, &rt->dst, tsoff); 397 /* ip_queue_xmit() depends on our flow being setup 398 * Normal sockets get it right from inet_csk_route_child_sock() 399 */ 400 if (ret) 401 inet_sk(ret)->cork.fl.u.ip4 = fl4; 402out: return ret; 403} |