summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkml <kml@NetBSD.org>1999-04-09 22:01:07 +0000
committerkml <kml@NetBSD.org>1999-04-09 22:01:07 +0000
commita7f8ef5e9bd7e4ac6a5d87bdb7c8df93fd5aa4b2 (patch)
tree7135daccc4b40095a078c213363519b48a5a0da1
parent0a400329134ea2cfc053685fc574ed3cde8b8648 (diff)
Ensure that out of window SYNs receive an ACK in responce, rather than
being dropped. This fixes a bug reported by Jason Thorpe.
-rw-r--r--sys/netinet/tcp_input.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
index 58986d703a7..63b0f01fd8e 100644
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -1,4 +1,4 @@
-/* $NetBSD: tcp_input.c,v 1.77 1999/02/05 22:37:24 matt Exp $ */
+/* $NetBSD: tcp_input.c,v 1.78 1999/04/09 22:01:07 kml Exp $ */
/*-
* Copyright (c) 1997, 1998, 1999 The NetBSD Foundation, Inc.
@@ -1104,8 +1104,12 @@ after_listen:
/*
* If the ACK bit is off we drop the segment and return.
*/
- if ((tiflags & TH_ACK) == 0)
- goto drop;
+ if ((tiflags & TH_ACK) == 0) {
+ if (tp->t_flags & TF_ACKNOW)
+ goto dropafterack;
+ else
+ goto drop;
+ }
/*
* Ack processing.