Page MenuHomeFreeBSD

D57813.id180521.diff
No OneTemporary

D57813.id180521.diff

diff --git a/sys/netinet/tcp_stacks/sack_filter.c b/sys/netinet/tcp_stacks/sack_filter.c
--- a/sys/netinet/tcp_stacks/sack_filter.c
+++ b/sys/netinet/tcp_stacks/sack_filter.c
@@ -598,6 +598,11 @@
*/
continue;
}
+ if (at != i)
+ memcpy(&in[at], &in[i], sizeof(struct sackblk));
+ at++;
+ if (sack_blk_used(sf, sf->sf_cur) == 0)
+ sf->sf_used++;
memcpy(&sf->sf_blks[sf->sf_cur], &in[i], sizeof(struct sackblk));
sf->sf_bits = sack_blk_set(sf, sf->sf_cur);
sf->sf_cur++;
@@ -609,8 +614,9 @@
highest_used = sf->sf_used;
#endif
}
- if (sf->sf_cur)
- sf->sf_cur--;
+ if (cnt_added)
+ sf->sf_cur = (sf->sf_cur + SACK_FILTER_BLOCKS - 1)
+ % SACK_FILTER_BLOCKS;
return (cnt_added);
}

File Metadata

Mime Type
text/plain
Expires
Mon, Aug 31, 11:44 PM (7 h, 53 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34320808
Default Alt Text
D57813.id180521.diff (1 KB)

Event Timeline