syncookies.c (95a0c7c2d6cfde3fb5fdb713428ed0df4d6bdd58) | syncookies.c (ceef9ab6be7234f9e49f79769e0da88d1dccfcc7) |
---|---|
1/* 2 * IPv6 Syncookies implementation for the Linux kernel 3 * 4 * Authors: 5 * Glenn Griffin <ggriffin.kernel@gmail.com> 6 * 7 * Based on IPv4 implementation by Andi Kleen 8 * linux/net/ipv4/syncookies.c --- 230 unchanged lines hidden (view full) --- 239 security_req_classify_flow(req, flowi6_to_flowi(&fl6)); 240 241 dst = ip6_dst_lookup_flow(sk, &fl6, final_p); 242 if (IS_ERR(dst)) 243 goto out_free; 244 } 245 246 req->rsk_window_clamp = tp->window_clamp ? :dst_metric(dst, RTAX_WINDOW); | 1/* 2 * IPv6 Syncookies implementation for the Linux kernel 3 * 4 * Authors: 5 * Glenn Griffin <ggriffin.kernel@gmail.com> 6 * 7 * Based on IPv4 implementation by Andi Kleen 8 * linux/net/ipv4/syncookies.c --- 230 unchanged lines hidden (view full) --- 239 security_req_classify_flow(req, flowi6_to_flowi(&fl6)); 240 241 dst = ip6_dst_lookup_flow(sk, &fl6, final_p); 242 if (IS_ERR(dst)) 243 goto out_free; 244 } 245 246 req->rsk_window_clamp = tp->window_clamp ? :dst_metric(dst, RTAX_WINDOW); |
247 tcp_select_initial_window(tcp_full_space(sk), req->mss, | 247 tcp_select_initial_window(sk, tcp_full_space(sk), req->mss, |
248 &req->rsk_rcv_wnd, &req->rsk_window_clamp, 249 ireq->wscale_ok, &rcv_wscale, 250 dst_metric(dst, RTAX_INITRWND)); 251 252 ireq->rcv_wscale = rcv_wscale; 253 ireq->ecn_ok = cookie_ecn_ok(&tcp_opt, sock_net(sk), dst); 254 255 ret = tcp_get_cookie_sock(sk, skb, req, dst, tsoff); 256out: 257 return ret; 258out_free: 259 reqsk_free(req); 260 return NULL; 261} | 248 &req->rsk_rcv_wnd, &req->rsk_window_clamp, 249 ireq->wscale_ok, &rcv_wscale, 250 dst_metric(dst, RTAX_INITRWND)); 251 252 ireq->rcv_wscale = rcv_wscale; 253 ireq->ecn_ok = cookie_ecn_ok(&tcp_opt, sock_net(sk), dst); 254 255 ret = tcp_get_cookie_sock(sk, skb, req, dst, tsoff); 256out: 257 return ret; 258out_free: 259 reqsk_free(req); 260 return NULL; 261} |