summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/netinet/tcp_input.c26
-rw-r--r--sys/netinet/tcp_reass.c26
-rw-r--r--sys/netinet/tcp_syncache.c4
-rw-r--r--sys/netinet/tcp_var.h2
4 files changed, 23 insertions, 35 deletions
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
index bf8df6a..62ccb3b 100644
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -966,24 +966,18 @@ findpcb:
* SYN appears to be valid. Create compressed TCP state
* for syncache.
*/
- if (so->so_qlen <= so->so_qlimit) {
#ifdef TCPDEBUG
- if (so->so_options & SO_DEBUG)
- tcp_trace(TA_INPUT, ostate, tp,
- (void *)tcp_saveipgen, &tcp_savetcp, 0);
+ if (so->so_options & SO_DEBUG)
+ tcp_trace(TA_INPUT, ostate, tp,
+ (void *)tcp_saveipgen, &tcp_savetcp, 0);
#endif
- tcp_dooptions(&to, optp, optlen, TO_SYN);
- if (!syncache_add(&inc, &to, th, inp, &so, m))
- goto dropunlock;
- /*
- * Entry added to syncache, mbuf used to
- * send SYN-ACK packet. Everything unlocked
- * already.
- */
- return;
- }
- /* Catch all. Everthing that makes it down here is junk. */
- goto dropunlock;
+ tcp_dooptions(&to, optp, optlen, TO_SYN);
+ syncache_add(&inc, &to, th, inp, &so, m);
+ /*
+ * Entry added to syncache and mbuf consumed.
+ * Everything unlocked already by syncache_add().
+ */
+ return;
}
/*
diff --git a/sys/netinet/tcp_reass.c b/sys/netinet/tcp_reass.c
index bf8df6a..62ccb3b 100644
--- a/sys/netinet/tcp_reass.c
+++ b/sys/netinet/tcp_reass.c
@@ -966,24 +966,18 @@ findpcb:
* SYN appears to be valid. Create compressed TCP state
* for syncache.
*/
- if (so->so_qlen <= so->so_qlimit) {
#ifdef TCPDEBUG
- if (so->so_options & SO_DEBUG)
- tcp_trace(TA_INPUT, ostate, tp,
- (void *)tcp_saveipgen, &tcp_savetcp, 0);
+ if (so->so_options & SO_DEBUG)
+ tcp_trace(TA_INPUT, ostate, tp,
+ (void *)tcp_saveipgen, &tcp_savetcp, 0);
#endif
- tcp_dooptions(&to, optp, optlen, TO_SYN);
- if (!syncache_add(&inc, &to, th, inp, &so, m))
- goto dropunlock;
- /*
- * Entry added to syncache, mbuf used to
- * send SYN-ACK packet. Everything unlocked
- * already.
- */
- return;
- }
- /* Catch all. Everthing that makes it down here is junk. */
- goto dropunlock;
+ tcp_dooptions(&to, optp, optlen, TO_SYN);
+ syncache_add(&inc, &to, th, inp, &so, m);
+ /*
+ * Entry added to syncache and mbuf consumed.
+ * Everything unlocked already by syncache_add().
+ */
+ return;
}
/*
diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c
index 6d1d1a2..881495a 100644
--- a/sys/netinet/tcp_syncache.c
+++ b/sys/netinet/tcp_syncache.c
@@ -832,7 +832,7 @@ failed:
* consume all available buffer space if it were ACKed. By not ACKing
* the data, we avoid this DoS scenario.
*/
-int
+void
syncache_add(struct in_conninfo *inc, struct tcpopt *to, struct tcphdr *th,
struct inpcb *inp, struct socket **lsop, struct mbuf *m)
{
@@ -1079,7 +1079,7 @@ done:
#endif
*lsop = NULL;
m_freem(m);
- return (1);
+ return;
}
static int
diff --git a/sys/netinet/tcp_var.h b/sys/netinet/tcp_var.h
index 5752da9..fad4cf4 100644
--- a/sys/netinet/tcp_var.h
+++ b/sys/netinet/tcp_var.h
@@ -542,7 +542,7 @@ void syncache_init(void);
void syncache_unreach(struct in_conninfo *, struct tcphdr *);
int syncache_expand(struct in_conninfo *, struct tcpopt *,
struct tcphdr *, struct socket **, struct mbuf *);
-int syncache_add(struct in_conninfo *, struct tcpopt *,
+void syncache_add(struct in_conninfo *, struct tcpopt *,
struct tcphdr *, struct inpcb *, struct socket **, struct mbuf *);
void syncache_chkrst(struct in_conninfo *, struct tcphdr *);
void syncache_badack(struct in_conninfo *);
OpenPOWER on IntegriCloud