syncookies.c (6fc8c827dd4fa615965c4eac9bbfd465f6eb8fb4) syncookies.c (9466a1ccebbe54ac57fb8a89c2b4b854826546a8)
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Syncookies implementation for the Linux kernel
4 *
5 * Copyright (C) 1997 Andi Kleen
6 * Based on ideas by D.J.Bernstein and Eric Schenk.
7 */
8

--- 198 unchanged lines hidden (view full) ---

207 bool own_req;
208
209 child = icsk->icsk_af_ops->syn_recv_sock(sk, skb, req, dst,
210 NULL, &own_req);
211 if (child) {
212 refcount_set(&req->rsk_refcnt, 1);
213 tcp_sk(child)->tsoffset = tsoff;
214 sock_rps_save_rxhash(child, skb);
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Syncookies implementation for the Linux kernel
4 *
5 * Copyright (C) 1997 Andi Kleen
6 * Based on ideas by D.J.Bernstein and Eric Schenk.
7 */
8

--- 198 unchanged lines hidden (view full) ---

207 bool own_req;
208
209 child = icsk->icsk_af_ops->syn_recv_sock(sk, skb, req, dst,
210 NULL, &own_req);
211 if (child) {
212 refcount_set(&req->rsk_refcnt, 1);
213 tcp_sk(child)->tsoffset = tsoff;
214 sock_rps_save_rxhash(child, skb);
215
216 if (tcp_rsk(req)->drop_req) {
217 refcount_set(&req->rsk_refcnt, 2);
218 return child;
219 }
220
215 if (inet_csk_reqsk_queue_add(sk, req, child))
216 return child;
217
218 bh_unlock_sock(child);
219 sock_put(child);
220 }
221 __reqsk_free(req);
222

--- 217 unchanged lines hidden ---
221 if (inet_csk_reqsk_queue_add(sk, req, child))
222 return child;
223
224 bh_unlock_sock(child);
225 sock_put(child);
226 }
227 __reqsk_free(req);
228

--- 217 unchanged lines hidden ---