Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/tcp_subr.c
Show First 20 Lines • Show All 2,555 Lines • ▼ Show 20 Lines | #endif | ||||
* This releases the TFO pending counter resource for TFO listen | * This releases the TFO pending counter resource for TFO listen | ||||
* sockets as well as passively-created TFO sockets that transition | * sockets as well as passively-created TFO sockets that transition | ||||
* from SYN_RECEIVED to CLOSED. | * from SYN_RECEIVED to CLOSED. | ||||
*/ | */ | ||||
if (tp->t_tfo_pending) { | if (tp->t_tfo_pending) { | ||||
tcp_fastopen_decrement_counter(tp->t_tfo_pending); | tcp_fastopen_decrement_counter(tp->t_tfo_pending); | ||||
tp->t_tfo_pending = NULL; | tp->t_tfo_pending = NULL; | ||||
} | } | ||||
#ifdef TCPHPTS | |||||
tcp_hpts_remove(inp, HPTS_REMOVE_ALL); | |||||
#endif | |||||
in_pcbdrop(inp); | in_pcbdrop(inp); | ||||
TCPSTAT_INC(tcps_closed); | TCPSTAT_INC(tcps_closed); | ||||
if (tp->t_state != TCPS_CLOSED) | if (tp->t_state != TCPS_CLOSED) | ||||
tcp_state_change(tp, TCPS_CLOSED); | tcp_state_change(tp, TCPS_CLOSED); | ||||
KASSERT(inp->inp_socket != NULL, ("tcp_close: inp_socket NULL")); | KASSERT(inp->inp_socket != NULL, ("tcp_close: inp_socket NULL")); | ||||
so = inp->inp_socket; | so = inp->inp_socket; | ||||
soisdisconnected(so); | soisdisconnected(so); | ||||
if (inp->inp_flags & INP_SOCKREF) { | if (inp->inp_flags & INP_SOCKREF) { | ||||
▲ Show 20 Lines • Show All 1,627 Lines • Show Last 20 Lines |