summaryrefslogtreecommitdiff
path: root/sys/netinet
diff options
context:
space:
mode:
authormycroft <mycroft@NetBSD.org>1994-10-14 16:01:48 +0000
committermycroft <mycroft@NetBSD.org>1994-10-14 16:01:48 +0000
commit63bb09e6daf7baab60dc67d18befe73fb5035ec6 (patch)
tree40e1541de26edcbe326d3cdebd58b6c765e9a22e /sys/netinet
parent6f5794ecbab7c733faf4f4dc3772bac65bc67735 (diff)
Don't return received data to the user until the initial handshake is complete.
Also use TCPS_HAVEESTABLISHED() in a few other places.
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/tcp_fsm.h3
-rw-r--r--sys/netinet/tcp_input.c4
-rw-r--r--sys/netinet/tcp_subr.c6
-rw-r--r--sys/netinet/tcp_timer.c4
-rw-r--r--sys/netinet/tcp_usrreq.c4
5 files changed, 11 insertions, 10 deletions
diff --git a/sys/netinet/tcp_fsm.h b/sys/netinet/tcp_fsm.h
index 2f8b1e57153..da5e3bb5b0b 100644
--- a/sys/netinet/tcp_fsm.h
+++ b/sys/netinet/tcp_fsm.h
@@ -1,4 +1,4 @@
-/* $NetBSD: tcp_fsm.h,v 1.5 1994/06/29 06:38:39 cgd Exp $ */
+/* $NetBSD: tcp_fsm.h,v 1.6 1994/10/14 16:01:48 mycroft Exp $ */
/*
* Copyright (c) 1982, 1986, 1993
@@ -58,6 +58,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 b5b95b3055f..e386ffb37db 100644
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -1,4 +1,4 @@
-/* $NetBSD: tcp_input.c,v 1.10 1994/06/29 06:38:40 cgd Exp $ */
+/* $NetBSD: tcp_input.c,v 1.11 1994/10/14 16:01:49 mycroft Exp $ */
/*
* Copyright (c) 1982, 1986, 1988, 1990, 1993, 1994
@@ -188,7 +188,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_subr.c b/sys/netinet/tcp_subr.c
index 8ca2ecb6c38..8aba993f9af 100644
--- a/sys/netinet/tcp_subr.c
+++ b/sys/netinet/tcp_subr.c
@@ -1,4 +1,4 @@
-/* $NetBSD: tcp_subr.c,v 1.11 1994/06/29 06:38:46 cgd Exp $ */
+/* $NetBSD: tcp_subr.c,v 1.12 1994/10/14 16:01:51 mycroft Exp $ */
/*
* Copyright (c) 1982, 1986, 1988, 1990, 1993
@@ -397,8 +397,8 @@ tcp_notify(inp, error)
(error == EHOSTUNREACH || error == ENETUNREACH ||
error == EHOSTDOWN)) {
return;
- } else if (tp->t_state < TCPS_ESTABLISHED && tp->t_rxtshift > 3 &&
- tp->t_softerror)
+ } else if (TCPS_HAVEESTABLISHED(tp->t_state) == 0 &&
+ tp->t_rxtshift > 3 && tp->t_softerror)
so->so_error = error;
else
tp->t_softerror = error;
diff --git a/sys/netinet/tcp_timer.c b/sys/netinet/tcp_timer.c
index ec4150c61e3..a05631adaf2 100644
--- a/sys/netinet/tcp_timer.c
+++ b/sys/netinet/tcp_timer.c
@@ -1,4 +1,4 @@
-/* $NetBSD: tcp_timer.c,v 1.8 1994/06/29 06:38:48 cgd Exp $ */
+/* $NetBSD: tcp_timer.c,v 1.9 1994/10/14 16:01:52 mycroft Exp $ */
/*
* Copyright (c) 1982, 1986, 1988, 1990, 1993
@@ -270,7 +270,7 @@ tcp_timers(tp, timer)
*/
case TCPT_KEEP:
tcpstat.tcps_keeptimeo++;
- if (tp->t_state < TCPS_ESTABLISHED)
+ if (TCPS_HAVEESTABLISHED(tp->t_state) == 0)
goto dropit;
if (tp->t_inpcb->inp_socket->so_options & SO_KEEPALIVE &&
tp->t_state <= TCPS_CLOSE_WAIT) {
diff --git a/sys/netinet/tcp_usrreq.c b/sys/netinet/tcp_usrreq.c
index 56de7d8fc91..ef1139f8fb3 100644
--- a/sys/netinet/tcp_usrreq.c
+++ b/sys/netinet/tcp_usrreq.c
@@ -1,4 +1,4 @@
-/* $NetBSD: tcp_usrreq.c,v 1.11 1994/10/13 14:26:15 mycroft Exp $ */
+/* $NetBSD: tcp_usrreq.c,v 1.12 1994/10/14 16:01:54 mycroft Exp $ */
/*
* Copyright (c) 1982, 1986, 1988, 1993
@@ -472,7 +472,7 @@ tcp_disconnect(tp)
{
struct socket *so = tp->t_inpcb->inp_socket;
- if (tp->t_state < TCPS_ESTABLISHED)
+ if (TCPS_HAVEESTABLISHED(tp->t_state) == 0)
tp = tcp_close(tp);
else if ((so->so_options & SO_LINGER) && so->so_linger == 0)
tp = tcp_drop(tp, 0);