mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-23 07:39:22 +00:00
Stop polling as soon as we have the packet we were waiting for.
* include/grub/net.h (grub_net_poll_cards): New argument stop_condition. All users updated. * grub-core/net/arp.c (have_pending): New var. (pending_req): Likewise. (grub_net_arp_send_request): Fill pending_req and use have_pending as stop indicator. (grub_net_arp_receive): Set have_pending. * grub-core/net/dns.c (recv_data): New field stop. (recv_hook): Set stop. (grub_net_dns_lookup): Init stop and use as stop condition. * grub-core/net/http.c (http_establish): Use headers_recv as stop condition. * grub-core/net/net.c (grub_net_poll_cards): New argument stop_condition. Stop when it goes true. * grub-core/net/tcp.c (grub_net_tcp_open): Use `established' as stop indicator. * grub-core/net/tftp.c (tftp_open): Use `have_oack' as stop indicator.
This commit is contained in:
1 parent
3e74723951
commit
96f7e60eae
10 files changed
+48
-18
No files matched your search
+1
-1
@@ -649,7 +649,7 @@ grub_net_tcp_open (char *server,
|
||||
}
|
||||
for (j = 0; (j < TCP_SYN_RETRANSMISSION_TIMEOUT / 50
|
||||
&& !socket->established); j++)
|
||||
grub_net_poll_cards (50);
|
||||
grub_net_poll_cards (50, &socket->established);
|
||||
if (socket->established)
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user