aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet/tcp_output.c
diff options
context:
space:
mode:
authorQing Li <qingli@FreeBSD.org>2006-02-23 21:14:34 +0000
committerQing Li <qingli@FreeBSD.org>2006-02-23 21:14:34 +0000
commit4b8e98d63276b174ac3000a31883ddb0242634ce (patch)
treeba9269e3b43a380565f17f26e41521f129e39b59 /sys/netinet/tcp_output.c
parentd2f4defee20c19d4b401dd47c3f23ff57beed33e (diff)
downloadsrc-4b8e98d63276b174ac3000a31883ddb0242634ce.tar.gz
src-4b8e98d63276b174ac3000a31883ddb0242634ce.zip
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
Notes
Notes: svn path=/head/; revision=155961
Diffstat (limited to 'sys/netinet/tcp_output.c')
-rw-r--r--sys/netinet/tcp_output.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c
index f68c2d9c12e4..ead2c1a4a3b7 100644
--- a/sys/netinet/tcp_output.c
+++ b/sys/netinet/tcp_output.c
@@ -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++;
}