aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/tcp.c
diff options
context:
space:
mode:
authorMichael Brown <mcb30@etherboot.org>2006-12-06 18:09:33 +0000
committerMichael Brown <mcb30@etherboot.org>2006-12-06 18:09:33 +0000
commit5edb85c8b432ce817a24fd2131edb69c5de6dc06 (patch)
treef121103be6c5f735a1a132a14e3833757977ad28 /src/net/tcp.c
parentd88832ad7eb4feb98f0891661085399b6ba63934 (diff)
downloadipxe-5edb85c8b432ce817a24fd2131edb69c5de6dc06.tar.gz
Work around another confused-by-RST bug
Diffstat (limited to 'src/net/tcp.c')
-rw-r--r--src/net/tcp.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/net/tcp.c b/src/net/tcp.c
index aa49366c2..2a188287a 100644
--- a/src/net/tcp.c
+++ b/src/net/tcp.c
@@ -516,6 +516,14 @@ int tcp_close ( struct tcp_connection *conn ) {
/* FIN consumes one byte on the snd stream */
// conn->snd_una++;
goto send_tcp_nomsg;
+ case TCP_TIME_WAIT:
+#warning "Fix me"
+ /* In TIME_WAIT, we should just be waiting for the
+ * timer to expire, which will trigger the actual
+ * closure. However, because we get confused by RST
+ * packets, we end up here. This works around the
+ * problem for now.
+ */
case TCP_SYN_SENT:
case TCP_LISTEN:
/**