Changeset View
Changeset View
Standalone View
Standalone View
head/sys/netinet/tcp_stacks/fastpath.c
Show First 20 Lines • Show All 740 Lines • ▼ Show 20 Lines | if ((SEQ_GEQ(th->th_seq, tp->last_ack_sent) && | ||||
switch (tp->t_state) { | switch (tp->t_state) { | ||||
case TCPS_SYN_RECEIVED: | case TCPS_SYN_RECEIVED: | ||||
so->so_error = ECONNREFUSED; | so->so_error = ECONNREFUSED; | ||||
goto close; | goto close; | ||||
case TCPS_ESTABLISHED: | case TCPS_ESTABLISHED: | ||||
case TCPS_FIN_WAIT_1: | case TCPS_FIN_WAIT_1: | ||||
case TCPS_FIN_WAIT_2: | case TCPS_FIN_WAIT_2: | ||||
case TCPS_CLOSE_WAIT: | case TCPS_CLOSE_WAIT: | ||||
case TCPS_CLOSING: | |||||
case TCPS_LAST_ACK: | |||||
so->so_error = ECONNRESET; | so->so_error = ECONNRESET; | ||||
close: | close: | ||||
tcp_state_change(tp, TCPS_CLOSED); | tcp_state_change(tp, TCPS_CLOSED); | ||||
/* FALLTHROUGH */ | /* FALLTHROUGH */ | ||||
default: | default: | ||||
tp = tcp_close(tp); | tp = tcp_close(tp); | ||||
} | } | ||||
} else { | } else { | ||||
▲ Show 20 Lines • Show All 1,712 Lines • Show Last 20 Lines |