summaryrefslogtreecommitdiffstats
path: root/sys/netinet/tcp_output.c
diff options
context:
space:
mode:
authorolah <olah@FreeBSD.org>1995-11-03 22:08:13 +0000
committerolah <olah@FreeBSD.org>1995-11-03 22:08:13 +0000
commit7c2efeb6de92a9b5d6911dfda4c8ed821646c2ec (patch)
tree9b3a8e7df4e0197a04c16458af0e284ac3f222fe /sys/netinet/tcp_output.c
parentad9443ce5263b62609a136c4850ff5d752101015 (diff)
downloadFreeBSD-src-7c2efeb6de92a9b5d6911dfda4c8ed821646c2ec.zip
FreeBSD-src-7c2efeb6de92a9b5d6911dfda4c8ed821646c2ec.tar.gz
Fix a logical error in T/TCP: when we actively open a connection, we
have to decide whether to send a CC or CCnew option in our SYN segment depending on the contents of our TAO cache. This decision has to be made once when the connection starts. The earlier code delayed this decision until the segment was assembled in tcp_output() and retransmitted SYN segments could have different CC options. Reviewed by: Richard Stevens, davidg, wollman
Diffstat (limited to 'sys/netinet/tcp_output.c')
-rw-r--r--sys/netinet/tcp_output.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c
index 9afaf97..f238761 100644
--- a/sys/netinet/tcp_output.c
+++ b/sys/netinet/tcp_output.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)tcp_output.c 8.4 (Berkeley) 5/24/95
- * $Id: tcp_output.c,v 1.14 1995/09/22 20:05:58 wollman Exp $
+ * $Id: tcp_output.c,v 1.15 1995/10/16 18:21:12 wollman Exp $
*/
#include <sys/param.h>
@@ -384,15 +384,8 @@ send:
case TH_SYN:
opt[optlen++] = TCPOPT_NOP;
opt[optlen++] = TCPOPT_NOP;
-
- if (taop->tao_ccsent != 0 &&
- CC_GEQ(tp->cc_send, taop->tao_ccsent)) {
- opt[optlen++] = TCPOPT_CC;
- taop->tao_ccsent = tp->cc_send;
- } else {
- opt[optlen++] = TCPOPT_CCNEW;
- taop->tao_ccsent = 0;
- }
+ opt[optlen++] = tp->t_flags & TF_SENDCCNEW ?
+ TCPOPT_CCNEW : TCPOPT_CC;
opt[optlen++] = TCPOLEN_CC;
*(u_int32_t *)&opt[optlen] = htonl(tp->cc_send);
optlen += 4;
OpenPOWER on IntegriCloud