summaryrefslogtreecommitdiff
path: root/sys/netinet/tcp_input.c
diff options
context:
space:
mode:
authorAndre Oppermann <andre@FreeBSD.org>2007-04-20 13:51:34 +0000
committerAndre Oppermann <andre@FreeBSD.org>2007-04-20 13:51:34 +0000
commite207f800392a350bd09109fc07d767a1a6e520dd (patch)
treea49d8ce2b83617ba81374f679e958eb93d291d8c /sys/netinet/tcp_input.c
parent0a5df51410ade938293ea338d950f8145bead68c (diff)
Notes
Diffstat (limited to 'sys/netinet/tcp_input.c')
-rw-r--r--sys/netinet/tcp_input.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
index e6022b454f96..bf8df6aad53f 100644
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -832,22 +832,22 @@ findpcb:
tcp_dooptions(&to, optp, optlen, 0);
if (!syncache_expand(&inc, &to, th, &so, m)) {
/*
- * No syncache entry, or ACK was not
+ * No syncache entry or ACK was not
* for our SYN/ACK. Send a RST.
*/
- tcpstat.tcps_badsyn++;
rstreason = BANDLIM_RST_OPENPORT;
goto dropwithreset;
}
if (so == NULL) {
/*
- * Could not complete 3-way handshake,
- * connection is being closed down, and
- * syncache has free'd mbuf.
+ * We completed the 3-way handshake
+ * but could not allocate a socket
+ * either due to memory shortage,
+ * listen queue length limits or
+ * global socket limits.
*/
- INP_UNLOCK(inp);
- INP_INFO_WUNLOCK(&tcbinfo);
- return;
+ rstreason = BANDLIM_UNLIMITED;
+ goto dropwithreset;
}
/*
* Socket is created in state SYN_RECEIVED.