syncookies.c (967535223f9a8d95c187a8728480b569164cd4f4) | syncookies.c (c92e8c02fe664155ac4234516e32544bec0f113d) |
---|---|
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 --- 341 unchanged lines hidden (view full) --- 350 treq->snt_synack = 0; 351 treq->tfo_listener = false; 352 353 ireq->ir_iif = inet_request_bound_dev_if(sk, skb); 354 355 /* We throwed the options of the initial SYN away, so we hope 356 * the ACK carries the same options again (see RFC1122 4.2.3.8) 357 */ | 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 --- 341 unchanged lines hidden (view full) --- 350 treq->snt_synack = 0; 351 treq->tfo_listener = false; 352 353 ireq->ir_iif = inet_request_bound_dev_if(sk, skb); 354 355 /* We throwed the options of the initial SYN away, so we hope 356 * the ACK carries the same options again (see RFC1122 4.2.3.8) 357 */ |
358 ireq->opt = tcp_v4_save_options(sock_net(sk), skb); | 358 RCU_INIT_POINTER(ireq->ireq_opt, tcp_v4_save_options(sock_net(sk), skb)); |
359 360 if (security_inet_conn_request(sk, skb, req)) { 361 reqsk_free(req); 362 goto out; 363 } 364 365 req->num_retrans = 0; 366 --- 37 unchanged lines hidden --- | 359 360 if (security_inet_conn_request(sk, skb, req)) { 361 reqsk_free(req); 362 goto out; 363 } 364 365 req->num_retrans = 0; 366 --- 37 unchanged lines hidden --- |