p; tcp_death_row.sysctl_tw_recycle && tcptw->tw_ts_recent_stamp && 58. tcp_v4_tw_remember_stamp(tw)) 59. inet_twsk_schedule(tw, &tcp_death_row, tw->tw_timeout, 60. TCP_TIMEWAIT_LEN); 61. else 62. inet_twsk_schedule(tw, &tcp_death_row, TCP_TIMEWAIT_LEN, 63. TCP_TIMEWAIT_LEN); 64. 65. 66. return TCP_TW_ACK; 67. } if (tw->tw_substate == TCP_FIN_WAIT2){ /* Just repeat all the checks of tcp_rcv_state_process() */
/* Out of window, send ACK */ if (paws_reject || !tcp_in_window(TCP_SKB_CB(skb)->seq, TCP_SKB_CB(skb)-论文网 >end_seq, tcptw->tw_rcv_nxt, tcptw->tw_rcv_nxt + tcptw->tw_rcv_wnd)) return TCP_TW_ACK;
if (th->rst) goto kill;
if (th->syn && !before(TCP_SKB_CB(skb)->seq, tcptw->tw_rcv_nxt)) goto kill_with_rst;
/* Dup ACK? */ if (!th->ack || !after(TCP_SKB_CB(skb)->end_seq, tcptw->tw_rcv_nxt) || TCP_SKB_CB(skb)->end_seq == TCP_SKB_CB(skb)->seq) { inet_twsk_put(tw); return TCP_TW_SUCCESS; }
/* New data or FIN. If new data arrive after half-duplex close, &
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>
|