Improve the handling of receiving unordered and unreliable user
messages using DATA chunks. Don't use fsn_included when not being sure that it is set to an appropriate value. If the default is used, which is -1, this can result in SCTP associaitons not making any user visible progress. Thanks to Yutaka Takeda for reporting this issue for the the userland stack in https://github.com/pion/sctp/issues/138. MFC after: 3 days
This commit is contained in:
parent
f7a34c99bc
commit
e7e38fa5cb
@ -5403,7 +5403,9 @@ sctp_flush_reassm_for_str_seq(struct sctp_tcb *stcb,
|
||||
* it can be delivered... But for now we just dump everything on the
|
||||
* queue.
|
||||
*/
|
||||
if (!asoc->idata_supported && !ordered && SCTP_TSN_GT(control->fsn_included, cumtsn)) {
|
||||
if (!asoc->idata_supported && !ordered &&
|
||||
control->first_frag_seen &&
|
||||
SCTP_TSN_GT(control->fsn_included, cumtsn)) {
|
||||
return;
|
||||
}
|
||||
TAILQ_FOREACH_SAFE(chk, &control->reasm, sctp_next, nchk) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user