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 --- |