mirror of
https://github.com/opnsense/src.git
synced 2026-06-14 19:20:18 -04:00
tcp: small cleanup
No functional change intended. Reviewed by: cc, glebius, markj, rscheff MFC after: 1 week Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D46850
This commit is contained in:
parent
7643141e93
commit
2eacb0841c
1 changed files with 28 additions and 31 deletions
|
|
@ -1567,49 +1567,46 @@ syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th,
|
|||
goto donenoprobe;
|
||||
}
|
||||
|
||||
if (tfo_cookie_valid) {
|
||||
bzero(&scs, sizeof(scs));
|
||||
sc = &scs;
|
||||
goto skip_alloc;
|
||||
}
|
||||
|
||||
KASSERT(sc == NULL, ("sc(%p) != NULL", sc));
|
||||
/*
|
||||
* Skip allocating a syncache entry if we are just going to discard
|
||||
* it later.
|
||||
*/
|
||||
if (!locked) {
|
||||
if (!locked || tfo_cookie_valid) {
|
||||
bzero(&scs, sizeof(scs));
|
||||
sc = &scs;
|
||||
} else
|
||||
sc = uma_zalloc(V_tcp_syncache.zone, M_NOWAIT | M_ZERO);
|
||||
if (sc == NULL) {
|
||||
/*
|
||||
* The zone allocator couldn't provide more entries.
|
||||
* Treat this as if the cache was full; drop the oldest
|
||||
* entry and insert the new one.
|
||||
*/
|
||||
TCPSTAT_INC(tcps_sc_zonefail);
|
||||
if ((sc = TAILQ_LAST(&sch->sch_bucket, sch_head)) != NULL) {
|
||||
sch->sch_last_overflow = time_uptime;
|
||||
syncache_drop(sc, sch);
|
||||
syncache_pause(inc);
|
||||
}
|
||||
} else {
|
||||
sc = uma_zalloc(V_tcp_syncache.zone, M_NOWAIT | M_ZERO);
|
||||
if (sc == NULL) {
|
||||
if (V_tcp_syncookies) {
|
||||
bzero(&scs, sizeof(scs));
|
||||
sc = &scs;
|
||||
} else {
|
||||
KASSERT(locked,
|
||||
("%s: bucket unexpectedly unlocked",
|
||||
__func__));
|
||||
SCH_UNLOCK(sch);
|
||||
goto done;
|
||||
/*
|
||||
* The zone allocator couldn't provide more entries.
|
||||
* Treat this as if the cache was full; drop the oldest
|
||||
* entry and insert the new one.
|
||||
*/
|
||||
TCPSTAT_INC(tcps_sc_zonefail);
|
||||
sc = TAILQ_LAST(&sch->sch_bucket, sch_head);
|
||||
if (sc != NULL) {
|
||||
sch->sch_last_overflow = time_uptime;
|
||||
syncache_drop(sc, sch);
|
||||
syncache_pause(inc);
|
||||
}
|
||||
sc = uma_zalloc(V_tcp_syncache.zone, M_NOWAIT | M_ZERO);
|
||||
if (sc == NULL) {
|
||||
if (V_tcp_syncookies) {
|
||||
bzero(&scs, sizeof(scs));
|
||||
sc = &scs;
|
||||
} else {
|
||||
KASSERT(locked,
|
||||
("%s: bucket unexpectedly unlocked",
|
||||
__func__));
|
||||
SCH_UNLOCK(sch);
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
skip_alloc:
|
||||
KASSERT(sc != NULL, ("sc == NULL"));
|
||||
if (!tfo_cookie_valid && tfo_response_cookie_valid)
|
||||
sc->sc_tfo_cookie = &tfo_response_cookie;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue