summaryrefslogtreecommitdiffstats
path: root/sys/netinet
diff options
context:
space:
mode:
authorjch <jch@FreeBSD.org>2016-10-09 21:35:12 +0000
committerjch <jch@FreeBSD.org>2016-10-09 21:35:12 +0000
commitd8fc7ba5ea5f7d4b1f87a24e4b01ecc65d5836d9 (patch)
treedd4cf373e8c7b7998d618b9cbe67c8ddf2a7d467 /sys/netinet
parent0bb8c90135493ffaef8eb820984b4f08603ba9ac (diff)
downloadFreeBSD-src-d8fc7ba5ea5f7d4b1f87a24e4b01ecc65d5836d9.zip
FreeBSD-src-d8fc7ba5ea5f7d4b1f87a24e4b01ecc65d5836d9.tar.gz
MFC r306443:
Fix an issue with accept_filter introduced with r261242: As a side effect of r261242 when using accept_filter the first call to soisconnected() is done earlier in tcp_input() instead of tcp_do_segment() context. Restore the expected behaviour. Note: This call to soisconnected() seems to be extraneous in all cases (with or without accept_filter). Will be addressed in a separate commit. PR: 212920 Reported by: Alexey Tested by: Alexey, jch Sponsored by: Verisign, Inc.
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/tcp_syncache.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c
index f71d028..6d7ab69 100644
--- a/sys/netinet/tcp_syncache.c
+++ b/sys/netinet/tcp_syncache.c
@@ -922,7 +922,9 @@ syncache_socket(struct syncache *sc, struct socket *lso, struct mbuf *m)
INP_WUNLOCK(inp);
- soisconnected(so);
+ if ((so->so_options & SO_ACCEPTFILTER) == 0) {
+ soisconnected(so);
+ }
TCPSTAT_INC(tcps_accepts);
return (so);
OpenPOWER on IntegriCloud