+2008-12-12 Alex Smith <alex@alex-smith.me.uk>
+
+ * fs/i386/pc/pxe.c (grub_pxefs_open): Handle the one open connection
+ at a time limit of the PXE TFTP API correctly.
+ (grub_pxefs_close): Likewise.
+
2008-11-29 Robert Millan <rmh@aybabtu.com>
* disk/ata.c (grub_ata_pciinit): Handle errors rised by
struct grub_pxe_data *data;
grub_file_t file_int, bufio;
+ if (curr_file != 0)
+ {
+ grub_pxe_call (GRUB_PXENV_TFTP_CLOSE, &c.c2);
+ curr_file = 0;
+ }
+
c.c1.server_ip = grub_pxe_server_ip;
c.c1.gateway_ip = grub_pxe_gateway_ip;
grub_strcpy (c.c1.filename, name);
{
struct grub_pxenv_tftp_open o;
- grub_pxe_call (GRUB_PXENV_TFTP_CLOSE, &o);
+ if (curr_file != 0)
+ grub_pxe_call (GRUB_PXENV_TFTP_CLOSE, &o);
o.server_ip = grub_pxe_server_ip;
o.gateway_ip = grub_pxe_gateway_ip;
{
struct grub_pxenv_tftp_close c;
- grub_pxe_call (GRUB_PXENV_TFTP_CLOSE, &c);
+ if (curr_file == file)
+ {
+ grub_pxe_call (GRUB_PXENV_TFTP_CLOSE, &c);
+ curr_file = 0;
+ }
+
grub_free (file->data);
return GRUB_ERR_NONE;