Hello -

Make sure we keep TF_NOPUSH set if TCP_NOPUSH was set.

FreeBSD has the same:
https://github.com/freebsd/freebsd/blob/c9af4f2541fd437e0805365fbeec46d69e033310/sys/netinet/tcp_syncache.c#L860
 
Index: netinet/tcp_input.c
===================================================================
RCS file: /cvs/src/sys/netinet/tcp_input.c,v
retrieving revision 1.327
diff -u -p -r1.327 tcp_input.c
--- netinet/tcp_input.c 15 Sep 2016 02:00:18 -0000      1.327
+++ netinet/tcp_input.c 18 Sep 2016 17:07:09 -0000
@@ -3798,7 +3798,7 @@ syn_cache_get(struct sockaddr *src, stru
        (void) m_free(am);
 
        tp = intotcpcb(inp);
-       tp->t_flags = sototcpcb(oso)->t_flags & TF_NODELAY;
+       tp->t_flags = sototcpcb(oso)->t_flags & (TF_NOPUSH|TF_NODELAY);
        if (sc->sc_request_r_scale != 15) {
                tp->requested_s_scale = sc->sc_requested_s_scale;
                tp->request_r_scale = sc->sc_request_r_scale;

Reply via email to