mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
This patch fixes the problem where the current TCP code can not handle
simultaneous open. Both the bug and the patch were verified using the ANVL test suite. PR: kern/74935 Submitted by: qingli (before I became committer) Reviewed by: andre MFC after: 5 days
This commit is contained in:
parent
d2f4defee2
commit
4b8e98d632
3 changed files with 4 additions and 3 deletions
|
|
@ -1421,7 +1421,7 @@ after_listen:
|
|||
* SYN-SENT* -> SYN-RECEIVED*
|
||||
* If there was no CC option, clear cached CC value.
|
||||
*/
|
||||
tp->t_flags |= TF_ACKNOW;
|
||||
tp->t_flags |= (TF_ACKNOW | TF_NEEDSYN);
|
||||
callout_stop(tp->tt_rexmt);
|
||||
tp->t_state = TCPS_SYN_RECEIVED;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -338,7 +338,8 @@ after_sack_rexmit:
|
|||
* know that foreign host supports TAO, suppress sending segment.
|
||||
*/
|
||||
if ((flags & TH_SYN) && SEQ_GT(tp->snd_nxt, tp->snd_una)) {
|
||||
flags &= ~TH_SYN;
|
||||
if (tp->t_state != TCPS_SYN_RECEIVED)
|
||||
flags &= ~TH_SYN;
|
||||
off--, len++;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1421,7 +1421,7 @@ after_listen:
|
|||
* SYN-SENT* -> SYN-RECEIVED*
|
||||
* If there was no CC option, clear cached CC value.
|
||||
*/
|
||||
tp->t_flags |= TF_ACKNOW;
|
||||
tp->t_flags |= (TF_ACKNOW | TF_NEEDSYN);
|
||||
callout_stop(tp->tt_rexmt);
|
||||
tp->t_state = TCPS_SYN_RECEIVED;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue