Changeset View
Changeset View
Standalone View
Standalone View
head/sys/netinet/tcp_syncache.c
Show First 20 Lines • Show All 846 Lines • ▼ Show 20 Lines | if (V_functions_inherit_listen_socket_stack && blk != tp->t_fb) { | ||||
rblk = find_and_ref_tcp_fb(blk); | rblk = find_and_ref_tcp_fb(blk); | ||||
KASSERT(rblk != NULL, | KASSERT(rblk != NULL, | ||||
("cannot find blk %p out of syncache?", blk)); | ("cannot find blk %p out of syncache?", blk)); | ||||
if (tp->t_fb->tfb_tcp_fb_fini) | if (tp->t_fb->tfb_tcp_fb_fini) | ||||
(*tp->t_fb->tfb_tcp_fb_fini)(tp, 0); | (*tp->t_fb->tfb_tcp_fb_fini)(tp, 0); | ||||
refcount_release(&tp->t_fb->tfb_refcnt); | refcount_release(&tp->t_fb->tfb_refcnt); | ||||
tp->t_fb = rblk; | tp->t_fb = rblk; | ||||
/* | |||||
* XXXrrs this is quite dangerous, it is possible | |||||
* for the new function to fail to init. We also | |||||
* are not asking if the handoff_is_ok though at | |||||
* the very start thats probalbly ok. | |||||
*/ | |||||
if (tp->t_fb->tfb_tcp_fb_init) { | if (tp->t_fb->tfb_tcp_fb_init) { | ||||
(*tp->t_fb->tfb_tcp_fb_init)(tp); | (*tp->t_fb->tfb_tcp_fb_init)(tp); | ||||
} | } | ||||
} | } | ||||
tp->snd_wl1 = sc->sc_irs; | tp->snd_wl1 = sc->sc_irs; | ||||
tp->snd_max = tp->iss + 1; | tp->snd_max = tp->iss + 1; | ||||
tp->snd_nxt = tp->iss + 1; | tp->snd_nxt = tp->iss + 1; | ||||
tp->rcv_up = sc->sc_irs + 1; | tp->rcv_up = sc->sc_irs + 1; | ||||
▲ Show 20 Lines • Show All 1,377 Lines • Show Last 20 Lines |