/* TFO delays the tcp_output until later, when the app calls write() */
if (so->so_flags1 & SOF1_PRECONNECT_DATA) {
- if (!necp_socket_is_allowed_to_send_recv(sotoinpcb(so), NULL, NULL))
+ if (!necp_socket_is_allowed_to_send_recv(sotoinpcb(so), NULL, NULL, NULL))
return (EHOSTUNREACH);
/* Initialize enough state so that we can actually send data */
tcp_mss(tp, -1, IFSCOPE_NONE);
tp->snd_wnd = tp->t_maxseg;
+ tp->max_sndwnd = tp->snd_wnd;
} else {
error = tcp_output(tp);
}
if (error)
goto out;
tp->snd_wnd = TTCP_CLIENT_SND_WND;
+ tp->max_sndwnd = tp->snd_wnd;
tcp_mss(tp, -1, IFSCOPE_NONE);
}
if (error)
goto out;
tp->snd_wnd = TTCP_CLIENT_SND_WND;
+ tp->max_sndwnd = tp->snd_wnd;
tcp_mss(tp, -1, IFSCOPE_NONE);
}
tp->snd_up = tp->snd_una + so->so_snd.sb_cc;
if (inp->inp_flowhash == 0)
inp->inp_flowhash = inp_calc_flowhash(inp);
- tcp_set_max_rwinscale(tp, so, TCP_AUTORCVBUF_MAX(outif));
+ tcp_set_max_rwinscale(tp, so, outif);
soisconnecting(so);
tcpstat.tcps_connattempt++;
(htonl(inp->inp_flowhash) & IPV6_FLOWLABEL_MASK);
}
- tcp_set_max_rwinscale(tp, so, TCP_AUTORCVBUF_MAX(outif));
+ tcp_set_max_rwinscale(tp, so, outif);
soisconnecting(so);
tcpstat.tcps_connattempt++;