Lines 158-164
Link Here
|
158 |
if (th == NULL) |
158 |
if (th == NULL) |
159 |
goto present; |
159 |
goto present; |
160 |
|
160 |
|
|
|
161 |
#if 1 |
161 |
/* |
162 |
/* |
|
|
163 |
* If there is no data with this mbuf just skip it. This can |
164 |
* happen on a (retransmitted) segment with FIN but no data. |
165 |
* The FIN is not to be reported in the thflags return value. |
166 |
* Don't try store the pure FIN to avoid complexity. |
167 |
*/ |
168 |
if (*tlenp == 0) { |
169 |
TCPSTAT_INC(tcps_rcvoopack); |
170 |
m_freem(m); |
171 |
return (0); |
172 |
} |
173 |
#endif |
174 |
|
175 |
/* |
162 |
* Limit the number of segments in the reassembly queue to prevent |
176 |
* Limit the number of segments in the reassembly queue to prevent |
163 |
* holding on to too many segments (and thus running out of mbufs). |
177 |
* holding on to too many segments (and thus running out of mbufs). |
164 |
* Make sure to let the missing segment through which caused this |
178 |
* Make sure to let the missing segment through which caused this |
Lines 226-231
Link Here
|
226 |
m_adj(m, i); |
240 |
m_adj(m, i); |
227 |
*tlenp -= i; |
241 |
*tlenp -= i; |
228 |
th->th_seq += i; |
242 |
th->th_seq += i; |
|
|
243 |
} else if (i == 0 && *tlenp == 0) { |
244 |
/* Integrate pure FIN segment. */ |
245 |
TCPSTAT_INC(tcps_rcvoopack); |
246 |
p->tqe_th->th_flags |= th->th_flags & TH_FIN; |
247 |
m_freem(m); |
248 |
uma_zfree(V_tcp_reass_zone, te); |
249 |
tp->t_segqlen--; |
250 |
V_tcp_reass_qsize--; |
251 |
return (0); |
229 |
} |
252 |
} |
230 |
} |
253 |
} |
231 |
TCPSTAT_INC(tcps_rcvoopack); |
254 |
TCPSTAT_INC(tcps_rcvoopack); |