Author: glebius
Date: Sat Jun 23 06:53:53 2018
New Revision: 335577
URL: https://svnweb.freebsd.org/changeset/base/335577

Log:
  Revert r334843, and partially revert r335180.
  
  tcp_outflags[] were defined since 4BSD and are defined nowadays in
  all its descendants. Removing them breaks third party application.

Modified:
  head/sys/netinet/tcp_fsm.h
  head/sys/netinet/tcp_offload.c
  head/sys/netinet/tcp_output.c
  head/sys/netinet/tcp_stacks/rack.c

Modified: head/sys/netinet/tcp_fsm.h
==============================================================================
--- head/sys/netinet/tcp_fsm.h  Sat Jun 23 03:17:11 2018        (r335576)
+++ head/sys/netinet/tcp_fsm.h  Sat Jun 23 06:53:53 2018        (r335577)
@@ -78,8 +78,27 @@
 #define        TCPS_HAVERCVDFIN(s)     \
     ((s) == TCPS_CLOSE_WAIT || ((s) >= TCPS_CLOSING && (s) != TCPS_FIN_WAIT_2))
 
-
-extern u_char  tcp_outflags[TCP_NSTATES];
+#ifdef TCPOUTFLAGS
+/*
+ * Flags used when sending segments in tcp_output.  Basic flags (TH_RST,
+ * TH_ACK,TH_SYN,TH_FIN) are totally determined by state, with the proviso
+ * that TH_FIN is sent only if all data queued for output is included in the
+ * segment.
+ */
+static u_char  tcp_outflags[TCP_NSTATES] = {
+       TH_RST|TH_ACK,          /* 0, CLOSED */
+       0,                      /* 1, LISTEN */
+       TH_SYN,                 /* 2, SYN_SENT */
+       TH_SYN|TH_ACK,          /* 3, SYN_RECEIVED */
+       TH_ACK,                 /* 4, ESTABLISHED */
+       TH_ACK,                 /* 5, CLOSE_WAIT */
+       TH_FIN|TH_ACK,          /* 6, FIN_WAIT_1 */
+       TH_FIN|TH_ACK,          /* 7, CLOSING */
+       TH_FIN|TH_ACK,          /* 8, LAST_ACK */
+       TH_ACK,                 /* 9, FIN_WAIT_2 */
+       TH_ACK,                 /* 10, TIME_WAIT */
+};     
+#endif
 
 #ifdef KPROF
 int    tcp_acounts[TCP_NSTATES][PRU_NREQ];

Modified: head/sys/netinet/tcp_offload.c
==============================================================================
--- head/sys/netinet/tcp_offload.c      Sat Jun 23 03:17:11 2018        
(r335576)
+++ head/sys/netinet/tcp_offload.c      Sat Jun 23 06:53:53 2018        
(r335577)
@@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$");
 #include <netinet/in_pcb.h>
 #include <netinet/tcp.h>
 #include <netinet/tcp_offload.h>
+#define        TCPOUTFLAGS
 #include <netinet/tcp_fsm.h>
 #include <netinet/tcp_var.h>
 #include <netinet/toecore.h>

Modified: head/sys/netinet/tcp_output.c
==============================================================================
--- head/sys/netinet/tcp_output.c       Sat Jun 23 03:17:11 2018        
(r335576)
+++ head/sys/netinet/tcp_output.c       Sat Jun 23 06:53:53 2018        
(r335577)
@@ -72,6 +72,7 @@ __FBSDID("$FreeBSD$");
 #include <netinet6/ip6_var.h>
 #endif
 #include <netinet/tcp.h>
+#define        TCPOUTFLAGS
 #include <netinet/tcp_fsm.h>
 #include <netinet/tcp_log_buf.h>
 #include <netinet/tcp_seq.h>
@@ -166,26 +167,6 @@ hhook_run_tcp_est_out(struct tcpcb *tp, struct tcphdr 
        }
 }
 #endif
-
-/*
- * Flags used when sending segments in tcp_output.  Basic flags (TH_RST,
- * TH_ACK,TH_SYN,TH_FIN) are totally determined by state, with the proviso
- * that TH_FIN is sent only if all data queued for output is included in the
- * segment.
- */
-u_char tcp_outflags[TCP_NSTATES] = {
-       TH_RST|TH_ACK,          /* 0, CLOSED */
-       0,                      /* 1, LISTEN */
-       TH_SYN,                 /* 2, SYN_SENT */
-       TH_SYN|TH_ACK,          /* 3, SYN_RECEIVED */
-       TH_ACK,                 /* 4, ESTABLISHED */
-       TH_ACK,                 /* 5, CLOSE_WAIT */
-       TH_FIN|TH_ACK,          /* 6, FIN_WAIT_1 */
-       TH_FIN|TH_ACK,          /* 7, CLOSING */
-       TH_FIN|TH_ACK,          /* 8, LAST_ACK */
-       TH_ACK,                 /* 9, FIN_WAIT_2 */
-       TH_ACK,                 /* 10, TIME_WAIT */
-};
 
 /*
  * CC wrapper hook functions

Modified: head/sys/netinet/tcp_stacks/rack.c
==============================================================================
--- head/sys/netinet/tcp_stacks/rack.c  Sat Jun 23 03:17:11 2018        
(r335576)
+++ head/sys/netinet/tcp_stacks/rack.c  Sat Jun 23 06:53:53 2018        
(r335577)
@@ -76,6 +76,7 @@ __FBSDID("$FreeBSD$");
 #include <netinet6/in6_pcb.h>
 #include <netinet6/ip6_var.h>
 #include <netinet/tcp.h>
+#define        TCPOUTFLAGS
 #include <netinet/tcp_fsm.h>
 #include <netinet/tcp_log_buf.h>
 #include <netinet/tcp_seq.h>
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to