mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-21 06:49:35 +00:00
Fix TCP retransmission
This commit is contained in:
1 parent
4ebb4c616f
commit
440694e3d3
1 file changed
+5
-3
+5
-3
@@ -708,12 +708,14 @@ grub_net_recv_tcp_packet (struct grub_net_buff *nb,
|
|||||||
for (unack = sock->unack_first; unack; unack = next)
|
for (unack = sock->unack_first; unack; unack = next)
|
||||||
{
|
{
|
||||||
grub_uint32_t seqnr;
|
grub_uint32_t seqnr;
|
||||||
|
struct tcphdr *unack_tcph;
|
||||||
next = unack->next;
|
next = unack->next;
|
||||||
seqnr = grub_be_to_cpu32 (((struct tcphdr *) unack->nb->data)
|
seqnr = grub_be_to_cpu32 (((struct tcphdr *) unack->nb->data)
|
||||||
->seqnr);
|
->seqnr);
|
||||||
seqnr += (nb->tail - nb->data
|
unack_tcph = (struct tcphdr *) unack->nb->data;
|
||||||
- (grub_be_to_cpu16 (tcph->flags) >> 12) * 4);
|
seqnr += (unack->nb->tail - unack->nb->data
|
||||||
if (grub_be_to_cpu16 (tcph->flags) & TCP_FIN)
|
- (grub_be_to_cpu16 (unack_tcph->flags) >> 12) * 4);
|
||||||
|
if (grub_be_to_cpu16 (unack_tcph->flags) & TCP_FIN)
|
||||||
seqnr++;
|
seqnr++;
|
||||||
|
|
||||||
if (seqnr > acked)
|
if (seqnr > acked)
|
||||||
|
|||||||
Reference in new issue
Block a user