diff options
| author | mycroft <mycroft@NetBSD.org> | 1994-10-14 16:01:48 +0000 |
|---|---|---|
| committer | mycroft <mycroft@NetBSD.org> | 1994-10-14 16:01:48 +0000 |
| commit | 63bb09e6daf7baab60dc67d18befe73fb5035ec6 (patch) | |
| tree | 40e1541de26edcbe326d3cdebd58b6c765e9a22e /sys/netinet | |
| parent | 6f5794ecbab7c733faf4f4dc3772bac65bc67735 (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.h | 3 | ||||
| -rw-r--r-- | sys/netinet/tcp_input.c | 4 | ||||
| -rw-r--r-- | sys/netinet/tcp_subr.c | 6 | ||||
| -rw-r--r-- | sys/netinet/tcp_timer.c | 4 | ||||
| -rw-r--r-- | sys/netinet/tcp_usrreq.c | 4 |
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); |
