From 6a7be6e8e00c40ad6d03410d56236ca0ed3a635e Mon Sep 17 00:00:00 2001 From: Garrett Wollman Date: Fri, 26 Aug 1994 22:27:16 +0000 Subject: [PATCH] Obey RFC 793, section 3.4: Several examples of connection initiation follow. Although these examples do not show connection synchronization using data-carrying segments, this is perfectly legitimate, so long as the receiving TCP doesn't deliver the data to the user until it is clear the data is valid (i.e., the data must be buffered at the receiver until the connection reaches the ESTABLISHED state). --- sys/netinet/tcp_fsm.h | 3 ++- sys/netinet/tcp_input.c | 4 ++-- sys/netinet/tcp_reass.c | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/sys/netinet/tcp_fsm.h b/sys/netinet/tcp_fsm.h index 45c79932bc1..cbd07c5e0f1 100644 --- a/sys/netinet/tcp_fsm.h +++ b/sys/netinet/tcp_fsm.h @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)tcp_fsm.h 8.1 (Berkeley) 6/10/93 - * $Id: tcp_fsm.h,v 1.2 1994/08/02 07:48:58 davidg Exp $ + * $Id: tcp_fsm.h,v 1.3 1994/08/21 05:27:36 paul Exp $ */ #ifndef _NETINET_TCP_FSM_H_ @@ -60,6 +60,7 @@ #define TCPS_TIME_WAIT 10 /* in 2*msl quiet wait after close */ #define TCPS_HAVERCVDSYN(s) ((s) >= TCPS_SYN_RECEIVED) +#define TCPS_HAVEESTABLISHED(s) ((s) >= TCPS_ESTABLISHED) #define TCPS_HAVERCVDFIN(s) ((s) >= TCPS_TIME_WAIT) #ifdef TCPOUTFLAGS diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index 674b7d919d8..68fc751c8f3 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)tcp_input.c 8.5 (Berkeley) 4/10/94 - * $Id: tcp_input.c,v 1.5 1994/08/02 07:49:01 davidg Exp $ + * $Id: tcp_input.c,v 1.6 1994/08/18 22:35:32 wollman Exp $ */ #ifndef TUBA_INCLUDE @@ -182,7 +182,7 @@ present: * Present data to user, advancing rcv_nxt through * completed sequence space. */ - if (TCPS_HAVERCVDSYN(tp->t_state) == 0) + if (TCPS_HAVEESTABLISHED(tp->t_state) == 0) return (0); ti = tp->seg_next; if (ti == (struct tcpiphdr *)tp || ti->ti_seq != tp->rcv_nxt) diff --git a/sys/netinet/tcp_reass.c b/sys/netinet/tcp_reass.c index 674b7d919d8..68fc751c8f3 100644 --- a/sys/netinet/tcp_reass.c +++ b/sys/netinet/tcp_reass.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)tcp_input.c 8.5 (Berkeley) 4/10/94 - * $Id: tcp_input.c,v 1.5 1994/08/02 07:49:01 davidg Exp $ + * $Id: tcp_input.c,v 1.6 1994/08/18 22:35:32 wollman Exp $ */ #ifndef TUBA_INCLUDE @@ -182,7 +182,7 @@ present: * Present data to user, advancing rcv_nxt through * completed sequence space. */ - if (TCPS_HAVERCVDSYN(tp->t_state) == 0) + if (TCPS_HAVEESTABLISHED(tp->t_state) == 0) return (0); ti = tp->seg_next; if (ti == (struct tcpiphdr *)tp || ti->ti_seq != tp->rcv_nxt)