Fix for a bug that causes the computation of "len" in tcp_output() to
get messed up, resulting in an inconsistency between the TCP state and so_snd.
This commit is contained in:
parent
e78225039a
commit
a1c6033ca7
@ -1573,6 +1573,10 @@ tcp_mtudisc(struct inpcb *inp, int errno)
|
|||||||
tcpstat.tcps_mturesent++;
|
tcpstat.tcps_mturesent++;
|
||||||
tp->t_rtttime = 0;
|
tp->t_rtttime = 0;
|
||||||
tp->snd_nxt = tp->snd_una;
|
tp->snd_nxt = tp->snd_una;
|
||||||
|
tcp_free_sackholes(tp);
|
||||||
|
tp->snd_recover = tp->snd_max;
|
||||||
|
if (tp->sack_enable)
|
||||||
|
EXIT_FASTRECOVERY(tp);
|
||||||
tcp_output(tp);
|
tcp_output(tp);
|
||||||
return (inp);
|
return (inp);
|
||||||
}
|
}
|
||||||
|
@ -1573,6 +1573,10 @@ tcp_mtudisc(struct inpcb *inp, int errno)
|
|||||||
tcpstat.tcps_mturesent++;
|
tcpstat.tcps_mturesent++;
|
||||||
tp->t_rtttime = 0;
|
tp->t_rtttime = 0;
|
||||||
tp->snd_nxt = tp->snd_una;
|
tp->snd_nxt = tp->snd_una;
|
||||||
|
tcp_free_sackholes(tp);
|
||||||
|
tp->snd_recover = tp->snd_max;
|
||||||
|
if (tp->sack_enable)
|
||||||
|
EXIT_FASTRECOVERY(tp);
|
||||||
tcp_output(tp);
|
tcp_output(tp);
|
||||||
return (inp);
|
return (inp);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user