Page MenuHomeFreeBSD

D46824.diff
No OneTemporary

D46824.diff

diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c
--- a/sys/netinet/tcp_output.c
+++ b/sys/netinet/tcp_output.c
@@ -1078,13 +1078,20 @@
sbsndptr_adv(&so->so_snd, mb, len);
m->m_len += len;
} else {
+ uint32_t new_len;
+
if (SEQ_LT(tp->snd_nxt, tp->snd_max))
msb = NULL;
else
msb = &so->so_snd;
+ new_len = len;
m->m_next = tcp_m_copym(mb, moff,
- &len, if_hw_tsomaxsegcount,
+ &new_len, if_hw_tsomaxsegcount,
if_hw_tsomaxsegsize, msb, hw_tls);
+ if (new_len != len) {
+ flags &= ~TH_FIN;
+ len = new_len;
+ }
if (len <= (tp->t_maxseg - optlen)) {
/*
* Must have ran out of mbufs for the copy

File Metadata

Mime Type
text/plain
Expires
Mon, Sep 30, 10:33 PM (13 h, 6 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
13070062
Default Alt Text
D46824.diff (691 B)

Event Timeline